Mar*_*uis 1 docker docker-compose docker-secrets
我的 Docker 容器在运行时不断重启docker-compose up -d。使用 来检查日志时docker logs --tail 50 --follow --timestamps db,出现以下错误:
/usr/local/bin/docker-entrypoint.sh: line 37: "/run/secrets/db_mysql_root_pw": No such file or directory
这可能意味着没有秘密。的输出docker secret ls也不提供任何秘密。
我的 docker-compose.yml 文件看起来像这样(不包括端口信息等):
version: '3.4'
services:
db:
image: mysql:8.0
container_name: db
restart: always
environment:
- MYSQL_USER_FILE="/run/secrets/db_mysql_user"
- MYSQL_PASSWORD_FILE="/run/secrets/db_mysql_user_pw"
- MYSQL_ROOT_PASSWORD_FILE="/run/secrets/db_mysql_root_pw"
secrets:
- db_mysql_user
- db_mysql_user_pw
- db_mysql_root_pw
volumes:
- "./mysql-data:/docker-entrypoint-initdb.d"
secrets:
db_mysql_user:
file: ./db_mysql_user.txt
db_mysql_user_pw:
file: ./db_mysql_user_pw.txt
db_mysql_root_pw:
file: ./db_mysql_root_pw.txt
Run Code Online (Sandbox Code Playgroud)
在同一个目录中,我有 3 个文本文件,它们只包含环境变量的值。例如db_mysql_user_pw.txt包含password。
我在 Windows 主机上运行 Linux 容器。
这很愚蠢,但正在改变
environment:
- MYSQL_USER_FILE="/run/secrets/db_mysql_user"
- MYSQL_PASSWORD_FILE="/run/secrets/db_mysql_user_pw"
- MYSQL_ROOT_PASSWORD_FILE="/run/secrets/db_mysql_root_pw"
Run Code Online (Sandbox Code Playgroud)
到
environment:
- MYSQL_USER_FILE=/run/secrets/db_mysql_user
- MYSQL_PASSWORD_FILE=/run/secrets/db_mysql_user_pw
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_mysql_root_pw
Run Code Online (Sandbox Code Playgroud)
使它工作。我仍然不知道为什么我看不到其中的秘密docker secret ls。
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |