gpt4 book ai didi

mysql - Docker compose不会为mysql8创建用户、密码和数据库

转载 作者:行者123 更新时间:2023-11-29 15:41:35 29 4
gpt4 key购买 nike

即使我已将它们作为环境变量传递,我的 docker compose 也不会创建 mysql 用户和数据库。这是我的 docker-compose.yml。

version: '3.3'
services:
web:
image: zadiki1/posshop-webapp
ports:
- "3000:3000"
depends_on:
- db
- phpmyadmin
environment:
HOST: db
MYSQL_DATABASE: 'posshop'
USER_NAME: 'zadik'
PASSWORD: 'zadik'
db:
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 'root'
MYSQL_USER: 'zadik'
MYSQL_PASSWORD: 'zadik'
MYSQL_DATABASE: 'posshop'
MYSQL_ROOT_HOST: '0.0.0.0'
expose:
- '3306'
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin-dot
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'root'
PMA_HOST: db
depends_on:
- db
ports:
- 8000:80

当我访问 mysql 服务器时,数据库和用户都没有创建网上查了没找到解决办法

最佳答案

环境变量用于配置对数据库内现有资源的访问。如果您需要在 db (mysql:8) 实例中拥有数据库 posshop 和用户 zadik,您需要在访问它们之前针对数据库服务器创建它们,例如来自网络

使用 Docker Compose 执行此操作有点不方便,但根据我的经验,成功的解决方案是使用例如用于持久保存数据库服务器配置的 docker 卷,创建数据库和用户,同时将服务器配置为使用它来持久保存。然后,随后在依赖于它的配置(如您的配置)中引用它。

将另一个容器添加到您的 Docker Compose 中来创建这些 Assets 和 block 是可能的,但更具挑战性。 web 从开始到完成。

关于mysql - Docker compose不会为mysql8创建用户、密码和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57578691/

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