gitlab ci/cd tutorial docker code example
Example 1: setup ci cd gitlab
Step 1:
Create .gitlab-ci.yml file (root folder)
Step 2:
Open .gitlab-ci.yml file: fill something below
--------------------
image: ubuntu:18.04
before_script:
- apt-get update -qy
- apt-get install -y lftp
build:
script:
- lftp -e "set ftp:ssl-allow no; open xxx.yyy.zzz.uuu; user ftp_account ftp_password; mirror -X .* -X .*/ --reverse --verbose ./ ./; bye"
--------------------
NOTE:
ftp_account: MUST set here
ftp_password: MUST set here
link ref
https://savjee.be/2019/04/gitlab-ci-deploy-to-ftp-with-lftp/
Example 2: how to create docker container on tag creation using gitlab ci
image: docker:19.03.11
services:
- docker:19.03.11-dind
stages:
- build
- test
- release
- deploy
variables:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_CERTDIR: "/certs"
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build:
stage: build
script:
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
test1:
stage: test
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker run $CONTAINER_TEST_IMAGE /script/to/run/tests
test2:
stage: test
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker run $CONTAINER_TEST_IMAGE /script/to/run/another/test
release-image:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
deploy:
stage: deploy
script:
- ./deploy.sh
only:
- master