Каков наилучший способ установить часовой пояс для версии 3 приложения docker-compose? - PullRequest
0 голосов
/ 14 ноября 2018

Вот мой файл docker-compose, как мне сделать так, чтобы службы mysql, mongo и scraper уважали мой локальный TZ или определенный TZ?Нужно ли настраивать каждую службу по-разному в зависимости от того, как они настроены?Как вы можете видеть, я попытался настроить scraper, используя переменную окружения, но как мне сделать это для службы MySQL и убедиться, что база данных MySQL уважает этот TZ?

version: '3.7'

services:
 mysql:
   image: mysql:8
   command: --default-authentication-plugin=mysql_native_password
   volumes:
     - mysql-data:/var/lib/mysql
     - ./:/home
   ports:
    - "3306:3306"
   environment:
     - MYSQL_ROOT_PASSWORD=xxxx
 mongo:
   image: mongo:3
   volumes:
     - mongo-data:/data/db
     - ./:/home
   ports:
     - "27017:27017"
   environment:
     - MONGO_DATA_DIR=/data/db
 scraper:
   image: ycshao/freedom_freedom
   depends_on:
     - mysql
     - mongo
   volumes:
     - ./:/app
   environment:
     - TZ=America/New_York
   command: bash -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && ./scripts/wait-for-resource-ready.sh && python main.py Scraper"
volumes:
  mysql-data:
    external:
      name: freedom-mysql-data-volume
  mongo-data:
    external:
      name: freedom-mongo-data-volume

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Я не нашел очень хорошего способа сделать его невежественным для хостов и гостевых машин. В итоге я просто выполняю команду, чтобы установить TZ для каждой гостевой машины. Это лучше, чем монтировать тома для сопоставления с хост-машиной, потому что, по крайней мере, она игнорирует хост-машину.

0 голосов
/ 14 ноября 2018

Монтирование часового пояса хост-машины в контейнер в файле compose может помочь.Но вам нужно установить его по сервису.

volumes:
    - "/etc/timezone:/etc/timezone:ro"
    - "/etc/localtime:/etc/localtime:ro"
...