Docker 设置 mysql 数据库环境
Docker Set Up mysql db environment
大家好,我正在设置一个新的 wordpress docker 机器,我要配置我的 sql 数据库:
db:
build:
context: ./Docker/mysql
dockerfile: Dockerfile
container_name: mysql
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
networks:
- back
sql 的 Dockerfile:
FROM mysql:latest
这也很好用问题是我真的不知道我应该在哪里设置环境道具,比如数据库名称用户等等。有什么建议么?
您可以将其设置为服务器上的环境变量,但如果您不想这样做,您可以为撰写命令设置它们:
DB_ROOT_PASSWORD=asdf DB_NAME=mydb DB_USERNAME=user DB_PASSWORD=pw docker compose
在评论中你说你想在 Dockerfile 中设置变量。下面是一个例子:
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=asdf
ENV MYSQL_DATABASE=mydb
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=pw
如果您不想在 Dockerfile 中硬编码这些内容,您可以将它们与构建时参数结合起来。
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=$db_root_pw
ENV MYSQL_DATABASE=$db_name
ENV MYSQL_USER=$db_username
ENV MYSQL_PASSWORD=$db_pw
确保在构建图像时包含参数:
docker build --build-arg db_root_pw=rootpw --build-arg db_name=mydb --build-arg db_username=user --build-arg db_pw=pw # [...]
代替environment
,使用:
env_file:
- env_file.env
并将 env_file.env(或“whateverfilename.env”)添加到您的项目目录,内容如下:
MYSQL_ROOT_PASSWORD=myrootpw
MYSQL_DATABASE=mydb
MYSQL_USER=myuser
MYSQL_PASSWORD=mypw
MYSQL_HOST=myhost
大家好,我正在设置一个新的 wordpress docker 机器,我要配置我的 sql 数据库:
db:
build:
context: ./Docker/mysql
dockerfile: Dockerfile
container_name: mysql
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
networks:
- back
sql 的 Dockerfile:
FROM mysql:latest
这也很好用问题是我真的不知道我应该在哪里设置环境道具,比如数据库名称用户等等。有什么建议么?
您可以将其设置为服务器上的环境变量,但如果您不想这样做,您可以为撰写命令设置它们:
DB_ROOT_PASSWORD=asdf DB_NAME=mydb DB_USERNAME=user DB_PASSWORD=pw docker compose
在评论中你说你想在 Dockerfile 中设置变量。下面是一个例子:
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=asdf
ENV MYSQL_DATABASE=mydb
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=pw
如果您不想在 Dockerfile 中硬编码这些内容,您可以将它们与构建时参数结合起来。
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=$db_root_pw
ENV MYSQL_DATABASE=$db_name
ENV MYSQL_USER=$db_username
ENV MYSQL_PASSWORD=$db_pw
确保在构建图像时包含参数:
docker build --build-arg db_root_pw=rootpw --build-arg db_name=mydb --build-arg db_username=user --build-arg db_pw=pw # [...]
代替environment
,使用:
env_file:
- env_file.env
并将 env_file.env(或“whateverfilename.env”)添加到您的项目目录,内容如下:
MYSQL_ROOT_PASSWORD=myrootpw
MYSQL_DATABASE=mydb
MYSQL_USER=myuser
MYSQL_PASSWORD=mypw
MYSQL_HOST=myhost