用gitlab持续部署,有哪些可能的方法?
Continuous deployment with gitlab, what are the possible methods?
我只是设置了一个基本的 .gitlab-ci.yml
以便在我的项目上进行持续部署,这是它的内容:
stages:
- deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
deploy_staging:
stage: deploy
script:
- ssh exemple@12.34.56.78 'cd api/dev/ && git checkout dev && git pull && cd doc/ && ./generate_doc.sh'
only:
- dev
deploy_prod:
stage: deploy
script:
- ssh exemple@12.34.56.78 'cd api/prod/ && git checkout master && git pull && docker stop API_prod && docker-compose -f docker-compose.prod.yml up --build -d && cd doc/ && ./generate_doc.sh'
only:
- master
我想知道是否有其他(更好的)方法可以做到这一点?
我不确定这里需要什么样的答案,但是这里有一个关于如何使用 git 作为部署工具的非常有趣的页面:
我只是设置了一个基本的 .gitlab-ci.yml
以便在我的项目上进行持续部署,这是它的内容:
stages:
- deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
deploy_staging:
stage: deploy
script:
- ssh exemple@12.34.56.78 'cd api/dev/ && git checkout dev && git pull && cd doc/ && ./generate_doc.sh'
only:
- dev
deploy_prod:
stage: deploy
script:
- ssh exemple@12.34.56.78 'cd api/prod/ && git checkout master && git pull && docker stop API_prod && docker-compose -f docker-compose.prod.yml up --build -d && cd doc/ && ./generate_doc.sh'
only:
- master
我想知道是否有其他(更好的)方法可以做到这一点?
我不确定这里需要什么样的答案,但是这里有一个关于如何使用 git 作为部署工具的非常有趣的页面: