mysql - Docker搭建mysql数据库环境

标签 mysql database docker docker-compose 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

这也很好用问题是我真的不知道我应该在哪里设置环境属性,比如数据库名称用户等等。有什么建议么?

最佳答案

您可以将其设置为服务器上的环境变量,但如果您不想这样做,您可以为 compose 命令设置它们:

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 # [...]

关于mysql - Docker搭建mysql数据库环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48299505/

相关文章:

c++ - 无需登录即可获取 MySQL 数据库列表

php - 如何从3个表中获取数据?

sql - 什么时候使用 .mdf 什么时候使用 .sdf?

docker - Windows Server Core Docker 容器网络问题

docker - HBase主Docker容器完成初始化后自动运行脚本

docker - dotnet core 2.2应用程序DockerFile COPY失败/over2/

mysql - 了解自连接

java - 从android在线数据库中插入数据

sql - 如何通过C-API运行SQLite3 'PRAGMA'命令?

java - Hibernate Entity 排序列配置