wordpress - Wordpress - 无法在 docker-compose 中更改用户名或密码
问题描述
如果我在 docker-compose 中使用它,它可以正常工作:
db_node_domain:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: mystrongpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
container_name: wp_db
networks:
- "proxy-tier"
wordpress:
depends_on:
- db_node_domain
image: wordpress:latest
ports:
- "8080:80"
expose:
- "8080"
restart: always
environment:
VIRTUAL_HOST: blog.mydomain.com
LETSENCRYPT_HOST: blog.mydomain.com
LETSENCRYPT_EMAIL: foo@mydomain.com
WORDPRESS_DB_HOST: db_node_domain:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
container_name: wordpress
networks:
- "proxy-tier"
我想为 MYSQL_USER 和 WORDPRESS_DB_USER 使用不同的用户名和更强的密码,但如果我对它们进行任何更改,我会从 nginx 得到 502 Bad Gateway。我不能改变这些吗?
解决方案
这是因为您已经建立了数据库。当您docker-compose up
第一次运行时,这些值已设置:
environment:
MYSQL_ROOT_PASSWORD: mystrongpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
这部分:
volumes:
- ./db_data:/var/lib/mysql
意味着它是一个持久性数据,停止容器后,下次运行时,数据将可用,不会设置新数据。所以你有两个选择:
- 新建
- 删除数据(或者可能是图像)
docker-compose.yml
用新密码修改文件docker-compose
再次运行
- 手动更改密码等
- 运行数据库容器
- 登录到容器,例如
docker exec -it <CONTAINER-ID> /bin/bash
- 更改密码等
- 注销并提交此新更改
很明显,新构建是更简单和更好的选择。
推荐阅读
- python - 正则表达式用 = 替换 sql 表的各个破折号
- abp - 如何在 _ViewStart ABP 框架 abp.io 中更改 _Layout
- assembly - 在指令集级别防止未对齐的访问
- java - 关闭安卓应用时触发的事件
- c# - RemObjects RemotingSDK 的替代方案
- c# - 如何将参数添加到 .Net Core 结构化日志记录而不在消息中引用它?
- google-cloud-platform - 我有 Kubernetes 集群。从外部源(集群外部)下载文件需要多少费用?
- java - 在 Activity1 框架上使用从 Activity2 的接口检索到的数据时遇到问题
- python - 如何解决pytorch中Multi Head Attention的大小不匹配?
- c - 如何在 Lunux 中使用 C 编写重定向代码?