bash - 简单的 docker 部署策略

标签 bash docker dockerfile

嘿,伙计们,过去几天我一直在深入研究 Docker,学到了很多东西。我已经到了想要部署到 digital ocean 液滴的地步,但我开始想知道构建/部署图像的策略。

我有一个完美的开发设置,我创建了一个与我的应用程序相关的文件卷。

docker run -d -p 80:3000 --name pug_web -v $DIR/app:/Development test_web

我不想不得不在我实际构建应用程序的/Development 文件夹中运行该应用程序。这是一个 nodejs/express 应用程序,我很想 concat/minify/etc。进入本地 dist 文件夹,然后将该构建文件夹添加到新的 dist 就绪镜像。

我想我要问的是,A)。我可以有不同的 dockerfile,一个用于 Dev,一个用于 Dist?如果不是 B)。我可以在我的 docker 文件中有 if 语句,这些语句会执行类似... if ENV == 'dist' add/dist... 等的操作吗?

我正在努力弄清楚如何在没有任何条件的情况下将其从本地开发环境转移到收紧的生产就绪图像。

最佳答案

我两者都做。

我的 Dockerfile 从 Git checkout 应用程序的代码。在开发过程中,我使用我正在处理的代码版本在该文件夹的顶部安装了一个卷。当我准备好部署到生产环境时,我只需检查 Git 并重新构建镜像。

我还有一个从 ENTRYPOINT 命令执行的脚本。该脚本查看环境变量“ENV”,如果它设置为“DEV”,它将启动我的开发服务器并打开调试,否则它将启动服务器的生产版本。

关于bash - 简单的 docker 部署策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807285/

相关文章:

docker - openshift使用uid 101运行所有容器,而不是从项目范围获取uid

ubuntu - Docker 守护程序不工作

docker - docker 镜像中文件神秘丢失

docker - 如何逐层调试docker pull?

docker - nginx docker文件无法打开文件

Linux - 按添加日期执行目录中的所有 Bash 脚本

qt - 从 .bat 文件执行 bash 脚本,QT 应用程序调用 .bat 文件

bash - 在 Bash 函数中更改全局位置参数

linux - 在远程系统上复制文件

angular - docker-compose 卡在建筑物上