Update docker_build_dind

This commit is contained in:
pashko 2025-03-14 10:13:10 +08:00
parent 9db0f4ecc1
commit 47f4300636

View File

@ -5,7 +5,7 @@
- docker login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $REGISTRY
.docker_login_stdin: &docker-login-stdin
- echo $REGISTRY_PASSWORD | docker login -u $REGISTRY_USER $REGISTRY --password-stdin
- echo "$REGISTRY_PASSWORD" | docker login -u $REGISTRY_USER $REGISTRY --password-stdin
.docker_login_docker_hub: &docker-login-docker-hub
- echo $DOCKER_REGISTRY_TOKEN | docker login -u $DOCKER_REGISTRY_USERNAME $DOCKER_REGISTRY_PATH --password-stdin
@ -14,14 +14,14 @@
- docker logout $DOCKER_REGISTRY_PATH
.docker_build_dind: &docker-build_dind
- docker build $NO_CACHE -f $DOCKERFILE_PATH -t $DOCKER_TAG $CONTEXT_PATH
- docker build $NO_CACHE $BUILD_ARGS -f $DOCKERFILE_PATH -t $DOCKER_TAG $CONTEXT_PATH
.docker_push: &docker-push
- docker push $DOCKER_TAG
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" || "${CI_COMMIT_REF_SLUG}" == "master" ]]; then
docker tag $DOCKER_TAG ${CI_REGISTRY_IMAGE}:latest; fi
docker tag $DOCKER_TAG ${REGISTRY_IMAGE}:latest; fi
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" || "${CI_COMMIT_REF_SLUG}" == "master" ]]; then
docker push ${CI_REGISTRY_IMAGE}:latest; fi
docker push ${REGISTRY_IMAGE}:latest; fi
.docker_retag: &docker-retag
- docker pull $SOURCE_IMAGE
@ -33,21 +33,32 @@
stage: build
image: ${DOCKER_IMAGE}
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
COMMIT_REF_NAME: test
CONTEXT_PATH: ${CI_PROJECT_DIR}
DOCKERFILE_PATH: ${CI_PROJECT_DIR}/Dockerfile
DOCKER_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
NO_CACHE: "--no-cache" # Можно изменить на пустую строку "", чтобы включить кэш
REGISTRY: $CI_REGISTRY
REGISTRY_USER: $CI_REGISTRY_USER
REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
DOCKER_IMAGE: docker:27.3.0
DOCKER_IMAGE_DIND: docker:27.3.0-dind
REGISTRY_IMAGE: $CI_REGISTRY_IMAGE
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
CONTEXT_PATH: ${CI_PROJECT_DIR}
DOCKERFILE_PATH: ${CI_PROJECT_DIR}/Dockerfile
DOCKER_TAG: $REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
NO_CACHE: "--no-cache" # Можно изменить на пустую строку "", чтобы включить кэш
BUILD_ARGS: "" # Можно изменить, например, на "--build-arg PROJECT_PATH=dotnet/app01 --build-arg CONFIG_FILE=dotnet/NuGet.Config"
DOCKER_IMAGE: docker:latest
DOCKER_IMAGE_DIND: docker:dind
services:
- ${DOCKER_IMAGE_DIND}
- name: ${DOCKER_IMAGE_DIND}
# NOTE: The alias is key to resolving the DNS issue.
# alias: docker
before_script:
- env | sort
script:
- |
if [[ -n "${CI_COMMIT_TAG}" && "${CI_COMMIT_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
export DOCKER_TAG=${REGISTRY_IMAGE}:${CI_COMMIT_TAG}
else
export DOCKER_TAG=${REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
fi
- *docker-login-stdin
- *docker-build_dind
- *docker-push