首页 > 解决方案 > 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 它工作正常。这正是我想做的。

标签: dockergitlabgitlab-ci

解决方案


推荐阅读