docker - 使用 Gitlab CI/CD 配置 Docker?
问题描述
我在 Gitlab CI/CD 中有一个简单的项目设置,使用 Docker 按照本指南在容器上提供站点服务。但是每当有新作业在推送事件上运行时,我都会收到“容器已在使用中...”错误。如何在不关闭或杀死容器的情况下将新代码“推送”到我已经运行的网站?
# .gitlab-ci.yml
stages:
- build
job 1:
stage: build
tags:
- windows-test
script:
- docker build -t vuejs-cookbook/dockerize-vuejs-app .
- docker run -p 8080:80 --rm --name dockerize-vuejs-app-1 vuejs-cookbook/dockerize-vuejs-app
解决方案
容器名称每次都相同。首先停止并移除旧容器。
运行docker stop dockerize-vuejs-app-1
和docker rm dockerize-vuejs-app-1
之后docker build
。
除此之外,我建议使用( docs-d
) 分离 ( )运行您的容器。--restart always
docker build -t vuejs-cookbook/dockerize-vuejs-app .
docker stop dockerize-vuejs-app-1
docker rm dockerize-vuejs-app-1
docker run -p 8080:80 -d --restart always --name dockerize-vuejs-app-1 vuejs-cookbook/dockerize-vuejs-app
推荐阅读
- android - 调试 Xamarin.Forms 应用程序时更改默认 Android 模拟器?
- angular - Firebase once("value") 触发“then”和“catch”
- python - 训练 acc 减少,验证 - 增加。训练损失,验证损失减少
- python-3.x - 如何为 LSTM 输入合并两层不同形状的层?
- python - 在使用 python2.7 和 c++rest 时降低冲突
- oracle - ORACLE 脚本 SQL
- dom - 找出 DOM 树中节点的位置?
- scala - Store Comonad 和 Representable Store Comonad 在函数式编程中有什么区别?
- javascript - JS获取以逗号+最后一个单词分隔的单词长度
- laravel - 无法使用 Supervisor 启动 laravel-echo-server