【发布时间】:2018-11-17 01:15:09
【问题描述】:
我希望构建一个带有初始化数据库的 docker 镜像。 此初始数据将包含默认客户端引用值“XXX”。
这是我的 Dockerfile:
FROM mysql/mysql-server:5.7
COPY data.sql /docker-entrypoint-initdb.d/
在启动此图像的容器时,我需要将 ref 值替换为用户的特定值“ABCD”,该值将来自 docker compose 文件设置的环境变量。
所以要运行的更新查询类似于:
update client set ref='ABCD' where ref='XXX'
如何让 Dockerfile 执行此操作?我不认为它可以是一个 RUN 命令,因为我不希望更新成为映像构建的一部分,而是映像启动的一部分(如果它在每次启动时运行此更新就可以了)。
我设置了所有常用的 mysql 环境变量 (MYSQL_ROOT_PASSWORD/MYSQL_ROOT_HOST/MYSQL_DATABASE/MYSQL_USER/MYSQL_PASSWORD),并希望参考另一个环境变量来设置所需的 ref。热衷于看到这可以作为原始命令和脚本来完成。
【问题讨论】:
标签: mysql docker docker-compose dockerfile