这是我的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
答案 0 :(得分:0)
将主机的时区安装到撰写文件中的容器可以解决问题。但是您需要按服务设置它。
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
答案 1 :(得分:0)
我没有找到一种使主机和来宾计算机不知所措的好方法。因此,我最终只是执行命令将TZ设置为每台来宾计算机。这比装入卷以映射到主机要好,因为至少它是主机不可知的。