Last active
January 8, 2021 12:23
-
-
Save devansvd/621ddc51bf0ae1c6436f3e81c6451e55 to your computer and use it in GitHub Desktop.
gitlab ci docker build and push to private docker registry pipeline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Ci pipeline to buid docker images | |
# and push to gitlab docker registry | |
# auto deploy as well | |
stages: | |
- build | |
docker-build-master: | |
image: docker:latest | |
stage: build | |
services: | |
- docker:dind | |
before_script: | |
#- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY | |
- echo -n $CI_BUILD_TOKEN | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY | |
- eval $(ssh-agent -s) | |
- echo "$SSH_PRIVATE_KEY" | ssh-add - | |
- mkdir -p ~/.ssh | |
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' | |
script: | |
- docker build --pull -t "$CI_REGISTRY_IMAGE" . | |
- docker push "$CI_REGISTRY_IMAGE" | |
- ssh -t -t host@ip "docker pull '$CI_REGISTRY_IMAGE' && docker rm -f imagename && docker run -d ... --restart unless-stopped '$CI_REGISTRY_IMAGE' && exit" | |
only: | |
- master |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Auto deployer ci/cd | |
# This file is a template, and might need editing before it works on your project. | |
# Official framework image. Look for the different tagged releases at: | |
# https://hub.docker.com/r/library/node/tags/ | |
image: node:alpine | |
stages: | |
- deploy | |
deploy: | |
stage: deploy | |
before_script: | |
# Install ssh-agent if not already installed, it is required by Docker. | |
# (change apt-get to yum if you use a CentOS-based image) | |
- 'which ssh-agent || ( apk add --update openssh )' | |
# Add bash | |
- apk add --update bash | |
# Add git | |
- apk add --update git | |
# Run ssh-agent (inside the build environment) | |
- eval $(ssh-agent -s) | |
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store | |
- echo "$SSH_PRIVATE_KEY" | ssh-add - | |
# For Docker builds disable host key checking. Be aware that by adding that | |
# you are suspectible to man-in-the-middle attacks. | |
# WARNING: Use this only with the Docker executor, if you use it with shell | |
# you will overwrite your user's SSH config. | |
- mkdir -p ~/.ssh | |
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' | |
# In order to properly check the server's host key, assuming you created the | |
# SSH_SERVER_HOSTKEYS variable previously, uncomment the following two lines | |
# instead. | |
# - mkdir -p ~/.ssh | |
# - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts' | |
script: | |
- npm i -g pm2 | |
- pm2 deploy ecosystem.config.js production | |
only: | |
- master |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Ci pipeline to buid docker images | |
# and push to gitlab docker registry | |
stages: | |
- build | |
docker-build-master: | |
image: docker:latest | |
stage: build | |
services: | |
- docker:dind | |
before_script: | |
#- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY | |
- echo -n $CI_BUILD_TOKEN | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY | |
script: | |
- docker build --pull -t "$CI_REGISTRY_IMAGE" . | |
- docker push "$CI_REGISTRY_IMAGE" | |
only: | |
- master |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment