zsh
1docker-compose up --build -d 2docker exec -it hoge-db mysql -u root -p
上記のコマンドでDocker内に建てたMySQLコンテナに入った後、日本語を入力しても消えてしまいます。
解決策をご存知な方いらっしゃいますでしょうか?
ちなみに、以下のコマンドで入ったアプリコンテナ内では日本語入力が可能でした。
zsh
1docker exec -it hoge-app bash
MySQLコンテナにおける文字コード設定
mysql> show variables like "chara%"; +--------------------------+----------------------------------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/Cellar/mysql@5.7/5.7.31/share/mysql/charsets/ | +--------------------------+----------------------------------------------------------+
以下にDockerFile、docker-compose.yml、mysql.confを示します。
DockerFile
1FROM golang:latest 2RUN mkdir hoge 3WORKDIR /hoge 4 5# RUN apt-get update \ 6# && apt-get install -y locales \ 7# && locale-gen ja_JP.UTF-8 \ 8# && echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc 9 10#上記のコメントアウトしたコードから下記のコマンドに変更することで、 11#アプリコンテナ上で日本語入力をすることができました。 12RUN apt-get update 13RUN apt-get install -y locales 14RUN echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen 15RUN locale-gen ja_JP.UTF-8 16ENV LANG ja_JP.UTF-8 17ENV LC_CTYPE ja_JP.UTF-8 18ENV DEBIAN_FRONTEND noninteractive 19RUN localedef -f UTF-8 -i ja_JP ja_JP.utf8 20 21 22COPY . . 23 24RUN CGO_ENABLED=0 go build -o main main.go 25 26RUN go get github.com/pilu/fresh 27 28CMD ["fresh"]
docker-compose.yml
version: "3" services: app: build: context: . dockerfile: ./docker/app/DockerFile container_name: hoge-app env_file: - docker-compose.env volumes: - .:/go/src/hoge - ./:/go/src/hot_reload_docker ports: - "80:8080" depends_on: - mysql restart: always mysql: image: mysql:5.7 restart: always container_name: hoge-db env_file: - docker-compose.env hostname: mysql ports: - "3306:3306" volumes: - ./database/conf.d/mysql.conf:/etc/mysql/conf.d/my.cnf - ./log/mysql:/var/log/mysql - ./database/data:/var/lib/mysql - ./database/initdb.d:/docker-entrypoint-initdb.d
mysql.conf
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci explicit-defaults-for-timestamp=1 general-log=1 general-log-file=/var/log/mysql/mysqld.log [mysql] default-character-set=utf8 [client] default-character-set=utf8mb4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/22 06:53