40 lines
1001 B
YAML
Executable File
40 lines
1001 B
YAML
Executable File
image: docker:latest
|
|
|
|
services:
|
|
- name: docker:dind
|
|
command: ["--tls=false"] # Disable TLS for Docker-in-Docker
|
|
|
|
variables:
|
|
DOCKER_HOST: "tcp://docker:2375" # Docker service address
|
|
DOCKER_TLS_CERTDIR: ""
|
|
DOCKER_DRIVER: overlay2
|
|
|
|
before_script:
|
|
- apk add --no-cache docker-cli
|
|
- |
|
|
# Wait for Docker to be ready
|
|
until docker info; do
|
|
echo "Waiting for Docker to be ready..."
|
|
sleep 5
|
|
done
|
|
|
|
stages:
|
|
- build
|
|
- push
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- docker info
|
|
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG .
|
|
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:latest
|
|
|
|
push:
|
|
stage: push
|
|
script:
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
|
|
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
|
|
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest
|
|
only:
|
|
- main
|