【发布时间】:2018-04-05 19:32:43
【问题描述】:
我的目标是构建一个 Docker 映像,其中包含预先填充了 Alembic 迁移生成的表和数据的 MySQL。 不幸的是,如果没有活动的 MySQL 实例,Alembic 无法生成必要的数据,也它可以独立创建一个SQL转储为loaded by MySQL on first run。
我尝试使用multi-stage builds 来同时使用mysql 和python 容器,但是一旦Python 阶段开始,MySQL 守护程序就会再次关闭。
# start MySQL daemon
FROM mysql:5.6
RUN docker-entrypoint.sh
# install and run Alembic
FROM python:2.7-alpine
# [install Alembic]
COPY ./alembic-migrations /alembic-migrations
# [run migrations]
我不喜欢这个特定的解决方案,但它似乎是最简单的选择。有没有办法做我正在尝试的事情?我应该辞职在 MySQL 容器中安装 Python 和 Alembic 吗?
【问题讨论】:
-
你研究过 docker-compose 吗?
-
为此目的,我们有一个使用
docker-compose的功能管道,但它很慢,因为它需要在每个开发人员的机器上、在每个环境中、每次有人切换分支时不断地重新运行 Alembic。我们希望构建一个可以通过注册表分发的映像,其中所有开发/测试数据库都已经内置。如果有办法使用docker-compose做到这一点,我很想听听。