为所有应用程序创建演示数据并将其保存在Dockerfile中

时间:2015-10-29 08:19:50

标签: docker dockerfile

# Config files
COPY config /actinbox_config/
COPY script /actinbox_script/
COPY database /actinbox_db/

# Config pyenv
RUN echo 'export PYENV_ROOT="/root/.pyenv"' >> /root/.bashrc && \
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.bashrc && \
    echo 'eval "$(pyenv init -)"' >> /root/.bashrc && \
# Config Nginx
    rm /etc/nginx/sites-enabled/default && \
    ln -s /actinbox_config/actinbox.conf /etc/nginx/sites-enabled/actinbox.conf && \
# Config PostgreSQL
    rm /etc/postgresql/9.3/main/pg_hba.conf && \
    ln -s /actinbox_config/pg_hba.conf `enter code here`/etc/postgresql/9.3/main/pg_hba.conf && \
# Create DB & Restore database
    sh /actinbox_config/create_db_actinbox.sh && \
# Delete template folder
    rm -r /actinbox_db/

这是我的dockerfile,我需要建议并建议如何创建每次重新运行容器时都会保存在docker镜像中的演示数据。

任何可以帮助我的人?我们正在使用postgre for db。

1 个答案:

答案 0 :(得分:0)

如果您需要在启动时容器中的数据相同(例如,对于集成测试),请使用COPY命令。

COPY demodata /demodata/

它将“持久”存入Docker镜像。

另一种方法是将目录从主机挂载到Docker容器。

docker run -v /host/directory:/container/directory -it yourImage

因此,您可以在容器启动并运行时修改数据,在多个容器之间共享相同的演示数据,并且在容器停止时不会丢失数据。