To assist Researchers and Students with the deployment of services in public and private clouds OIT has deployed a Community Edition of GITLab including support for GITLab CI/CD.
To configure a docker-enabled project developers must include a .gitlab-ci.yml file in the root of their project. The project may need to be customized to build your project.
image: docker
variables:
CONTAINER_ALL_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA CONTAINER_BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH CONTAINER_LATEST_IMAGE: $CI_REGISTRY_IMAGE:latest
services:
- name: docker:dind
command: ["--mtu=1450"]
stages:
- build
- test
- push
- deploy
before_script:
- until docker info; do sleep 1; done
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build:
stage: build
script:
- docker pull $CONTAINER_LATEST_IMAGE || true
- docker build --cache-from $CONTAINER_LATEST_IMAGE -t $CONTAINER_ALL_IMAGE .
- docker tag $CONTAINER_ALL_IMAGE $CONTAINER_BRANCH_IMAGE
- docker push $CONTAINER_ALL_IMAGE
- docker push $CONTAINER_BRANCH_IMAGE
push_main:
stage: push
script:
- docker pull $ONTAINER_ALL_IMAGE
- docker tag $CONTAINER_ALL_IMAGE $CONTAINER_LATEST_IMAGE
- docker push $CONTAINER_LATEST_IMAGE
only:
- master
- main