繁体   English   中英

简单的Docker部署策略

[英]Simple docker deployment tactics

大家好,所以我花了几天的时间深入研究Docker,并学到了很多东西。 我到了要部署到Digitalocean液滴的地步,但是我开始怀疑构建/部署映像的策略。

我有一个完美的Dev设置,在其中创建了与我的应用程序绑定的文件卷。

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签出应用程序的代码。 在开发过程中,我将使用我正在处理的代码版本在该文件夹的顶部安装一个卷。 准备部署到生产环境时,只需签入Git并重新构建映像。

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

另外,您可以避免在开发中使用Docker,而在存储库的根目录中放置一个Dockerfile。 然后,您可以使用CI服务器(在我们的案例中为Jenkins,但Dockerhub还允许自动构建存储库 ,如果您的团队较小或无法访问专用构建服务器,则可以为您执行此操作。

然后,您只需拉出图像并在生产盒上运行它即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM