web-dev-qa-db-ja.com

Docker。 MySQLイメージ。 my.cnfファイルを変更できません

私はそのようなdocker-compose.ymlを持っています:

    database:
        container_name: test_db
        image: mysql:5.7
        volumes:
            - ./docker/my.cnf:/etc/my.cnf
        environment:
            - "MYSQL_ROOT_PASSWORD=root"
            - "MYSQL_DATABASE=test_db"
        ports:
            - "3306:3306"
        volumes:
          - test_db_data:/var/lib/mysql

volumes:
    test_db_data:

sql_modeを編集したい。

./docker/my.cnfに含まれるもの:

[mysqld]
sql_mode=""

しかし、ローカルマシンからdbに接続してSELECT @@sql_mode;を実行すると、次のメッセージが表示されます。

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

何が悪いのですか?

7
D.R.

また、私は変わりました

- ./docker/my.cnf:/etc/my.cnf

- ./docker/my.cnf:/etc/alternatives/my.cnf

これは問題とは関係ありませんが、「ベタープラクティス」と見なされているようです。

1
D.R.

これをdbサービスに追加できます:

command: --sql_mode=""

っていうことは:

    database:
    container_name: test_db
    image: mysql:5.7
    volumes:
        - ./docker/my.cnf:/etc/my.cnf
    environment:
        - "MYSQL_ROOT_PASSWORD=root"
        - "MYSQL_DATABASE=test_db"
    ports:
        - "3306:3306"
    volumes:
      - test_db_data:/var/lib/mysql
    command: --sql_mode=""
10
Brad

「volumes」ディレクティブを1つだけ使用するようにしてください。多分それは最後のものだけを使います。

4
Fiber Optic