在 docker 环境中成功 CI 后如何部署到自定义服务器?
Posted
技术标签:
【中文标题】在 docker 环境中成功 CI 后如何部署到自定义服务器?【英文标题】:How to deploy to custom server after success CI in docker environment? 【发布时间】:2018-12-01 21:35:58 【问题描述】:我已经做过 CI,但现在我想部署到我的服务器上。我的服务器是我做 CI 的同一台机器,但我在 docker-executor 中做 CI。所以我无法访问服务器文件夹来更新生产。 这是我的脚本:
image: node:9.11.2
cache:
paths:
- node_modules/
before_script:
- npm install
stages:
- test
- deploy
test:
stage: test
script:
- npm run test
deploy:
stage: deploy
script:
#here I want to go to /home/projectFolder and make git pull, npm i, npm start
# but I can't beause I run CI in docker-environment which hasn't acces to my server's dirictories.
【问题讨论】:
【参考方案1】:首先你应该考虑使用gitlab auto cicd(或者如果你不想使用kubernetes,可以使用它作为基础进行自定义)
您有多种方法可以做到这一点,但最简单的方法应该是使用高山图像和 - 安装 ssh(如有必要) - 加载您的私人 ssh 密钥(来自管道机密) - 通过 ssh 运行你的 npm 命令。
最干净的方法是: - 生成将有效的 Dockerfile 添加到您的项目 - 为 master 上的每个提交添加 docker 映像生成(在您的管道中) - 添加 docker rm 运行映像(在您的管道中) - 添加 docker run 新生成的图像(在您的管道中)(通过共享您的 docker 卷) - 让 nginx 重定向到你的容器。
我可以根据您的决定提供更详细的建议。
希望我能帮上忙。
【讨论】:
以上是关于在 docker 环境中成功 CI 后如何部署到自定义服务器?的主要内容,如果未能解决你的问题,请参考以下文章