-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
39 lines (34 loc) · 1.62 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
image: docker:git
services:
- docker:dind
variables:
DOCKER_TLS_CERTDIR: /builds/certs
BUILDPLATFORM: "linux/amd64,linux/arm64,linux/arm/v7"
DOCKER_BUILDX_ARCH: "amd64"
before_script:
- export BUILD_DATE=$(date -u +%Y%m%d-%H%M%S)
- export DOCKER_IMAGE_VERSION=${BUILD_DATE}.${CI_COMMIT_SHORT_SHA}
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
# docker buildx, see for details: https://github.com/Tob1asDocker/dockerhubhooksexample/blob/main/.gitlab-ci.yml
- export DOCKER_BUILDX_VERSION=$(wget -qO- https://api.github.com/repos/docker/buildx/releases/latest | grep 'tag_name' | cut -d\" -f4 | sed 's/[^0-9.]//g')
- mkdir -p /usr/lib/docker/cli-plugins
- wget "https://github.com/docker/buildx/releases/download/v${DOCKER_BUILDX_VERSION}/buildx-v${DOCKER_BUILDX_VERSION}.linux-${DOCKER_BUILDX_ARCH}" -O /usr/lib/docker/cli-plugins/docker-buildx
- chmod a+x /usr/lib/docker/cli-plugins/docker-buildx
- docker run --rm --privileged tonistiigi/binfmt --install all
- docker context create tls-environment
- docker buildx create --name multiarchbuilder --use tls-environment
- docker buildx ls
stages:
- docker
webservice:
stage: docker
script:
- docker buildx build --build-arg BUILD_DATE="${BUILD_DATE}" --build-arg VCS_REF="${CI_COMMIT_SHORT_SHA}" --tag "${CI_REGISTRY_IMAGE}:${DOCKER_IMAGE_VERSION}" --tag "${CI_REGISTRY_IMAGE}:latest" --platform "${BUILDPLATFORM}" --file "Dockerfile" --push .
only:
- tags
- schedules
- changes
- Dockerfile
- login_wohnheim_uni_mainz_de-webservice.py
after_script:
- docker logout $CI_REGISTRY