docker - gitlab-ci 将本地文件推送到服务器
问题描述
我在 Gitlab 上有一个应用程序,我正在使用 docker-compose。我想问一下,我想把我在 GitLab-ci 上创建的 .env 文件发送到开发和生产服务器。因为容器不适用于 docker-compose up -d。我可以用 ssh 做到这一点,但如果有一个好的方法它可能是完美的。
.gitlab-ci-yml
test:
stage: test
script:
- echo "IMAGE=$TEST_IMAGE" >> .env
- docker pull $TEST_IMAGE
- docker-compose up -d
- echo "Test Success"
development:
stage: deploy
script:
- ssh gitlab@xyz.com "$DEVELOPMENT_COMMANDS"
- echo "IMAGE=$TEST_IMAGE" >> .env
- docker-compose -H "ssh://gitlab@xyx.com" down
- docker-compose -H "ssh://gitlab@$xyz.com" pull
- docker-compose -H "ssh://gitlab@xyz.com" up -d
码头工人-compose.yml
version: "3.7"
services:
django:
image: ${IMAGE}
container_name: django
ports:
- 9000:9000
build:
dockerfile: Dockerfile
context: .
如果我在 .env 文件中键入 $IMAGE=registry.gitlab.com/test/test:6fac57xd 它工作正常。这正是我想做的。
解决方案
推荐阅读
- bash - Bash 脚本不会在输入命令时退出
- r - 将函数应用于数据框所有列的每列因子
- javascript - 根据索引删除数组元素
- ajax - 在 WordPress 中通过 AJAX 加载 PAGE 内容
- asp.net-core-mvc - 内联编辑数据表。ASP.NET 核心 MVC
- git - 如何使用 git filter-repo 而不是整个分支历史记录仅修改一系列提交?
- php - PHP数组到另一个和json
- django - 无法在 if 条件内解析 {{blog.content}}
- php - 在php中计算两个日期之间的特定天数
- java - 是否可以使用 MediaProjection API 并在录制过程中处理每个录制的帧?