gpt4 book ai didi

mysql - Docker compose healthcheck 使用环境变量

转载 作者:可可西里 更新时间:2023-11-01 08:02:06 30 4
gpt4 key购买 nike

这是我的docker-compose.yml:

version: "3"

services:
mongodb:
image: mongo:4.1
volumes:
- ./mongodb_data:/data/db
container_name: mongodb
ports:
- 27017:27017
mysql:
image: mysql:5.7
#volumes:
#- ./mysql_data:/var/lib/mysql
container_name: mysqldb
ports:
- 3306:3306
- 33060:33060
expose:
- 3306
- 33060
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=somedb
- MYSQL_USER=rstudio
- MYSQL_PASSWORD=password
healthcheck:
test: ["CMD", "mysql", "--user=$MYSQL_USER", "--password=$MYSQL_PASSWORD", "-e", "'SHOW DATABASES;'"]
timeout: 5s
retries: 5

如何使用环境变量 MYSQL_USERMYSQL_PASSWORD?在当前设置中,我在运行 docker compose 时收到以下警告:

WARNING: The MYSQL_USER variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_PASSWORD variable is not set. Defaulting to a blank string.

最佳答案

您需要使用双美元符号 ($$) 来告诉 docker-compose 不要解析这些环境变量。还改变了定义测试的方式,因为我试图让它工作,但我不能不改变它。以下应按预期工作:

test: mysql --user=$$MYSQL_USER --password=$$MYSQL_PASSWORD -e 'SHOW DATABASES;'

docker ps 结果:向上 35 秒(健康)

关于mysql - Docker compose healthcheck 使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54988792/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com