大家好,我花了几天的时间深入研究Docker,并学到了很多东西。我到了要部署到Digitalocean液滴的地步,但我开始怀疑构建/部署镜像的策略。
我有一个完美的Dev设置,在其中创建了与我的应用程序绑定(bind)的文件卷。
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语句来执行以下操作吗......如果ENV =='dist'添加/ dist ...等
我正在努力弄清楚如何在没有任何条件的情况下将其从本地Dev环境迁移到收紧的生产就绪镜像。
最佳答案
我都做
我的Dockerfile从Git checkout 应用程序的代码。在开发期间,我将使用我正在处理的代码版本在该文件夹的顶部安装一个卷。准备部署到生产环境时,只需 checkin Git并重新构建镜像。
我也有一个从ENTRYPOINT命令执行的脚本。该脚本查看环境变量“ENV”,如果将其设置为“DEV”,它将在调试打开的情况下启动我的开发服务器,否则它将启动该服务器的生产版本。
关于bash - 简单的Docker部署策略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30807285/