.docker-build-container: image: registry.internal.durp.info/docker:20.10.17 variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" DOCKER_HOST: tcp://127.0.0.1:2375/ services: - name: docker:dind entrypoint: ["dockerd-entrypoint.sh", "--tls=false"] script: # Begin of docker-login.sh - | #login to docker docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY/$CI_PROJECT_PATH # End of docker-login.sh # Begin of docker-build.sh - | #Build Docker Container docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$VERSION -t $CI_REGISTRY/$CI_PROJECT_PATH:latest . docker push "$CI_REGISTRY/$CI_PROJECT_PATH:latest" docker push "$CI_REGISTRY/$CI_PROJECT_PATH:$VERSION" # End of docker-build.sh .docker_build: image: registry.internal.durp.info/docker:20.10.17 variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" DOCKER_HOST: tcp://127.0.0.1:2375/ services: - name: docker:dind entrypoint: ["dockerd-entrypoint.sh", "--tls=false"] script: # Begin of version.sh - | #check for Version variable if [ -z "${VERSION}" ]; then # If not, assign a default value VERSION=$CI_COMMIT_SHORT_SHA fi # End of version.sh # Begin of build.sh - | #Build Docker Container mkdir $CI_PROJECT_DIR/packages containername=$(echo "$CI_PROJECT_NAME" | awk '{print tolower($0)}') docker build -t $containername . docker save -o $CI_PROJECT_DIR/packages/$containername.$VERSION.tar.gz $containername # End of build.sh artifacts: expire_in: 1 hour paths: - $CI_PROJECT_DIR/packages .docker_push_gitlab: image: registry.internal.durp.info/docker:20.10.17 variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" DOCKER_HOST: tcp://127.0.0.1:2375/ services: - name: docker:dind entrypoint: ["dockerd-entrypoint.sh", "--tls=false"] script: # Begin of login.sh - | #Docker Login docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY/$CI_PROJECT_PATH # End of login.sh # Begin of push-gitlab.sh - | #Push container to gitlab containername=$(echo "$PROJECT_NAME" | awk '{print tolower($0)}') if echo "$VERSION" | grep -Eq '^[0-9]+(\.[0-9]+)*$'; then tag="latest" else tag="dev" fi docker import $CI_PROJECT_DIR/packages/$containername.$VERSION.tar.gz $CI_REGISTRY/$CI_PROJECT_PATH:$VERSION docker import $CI_PROJECT_DIR/packages/$containername.$VERSION.tar.gz $CI_REGISTRY/$CI_PROJECT_PATH:$tag docker push "$CI_REGISTRY/$CI_PROJECT_PATH:$VERSION" docker push "$CI_REGISTRY/$CI_PROJECT_PATH:$tag" # End of push-gitlab.sh