這是一個簡單的容器映象化舉例然後把它推上去:
CI/CD中的容器影像庫:
在 CI/CD 模擬中,通常會有一個建置階段,該階段負責將原始程式碼建置成容器鏡像。
建置後,貨櫃形象會被集體到指定的貨櫃形象庫。
配置階段會從容器映像庫中取得所需的容器映像來執行應用程式。
安全性和權限控制:
容器鏡像庫通常提供安全性和權限控制機制,以確保只有授權的使用者才能存取和管理鏡像。
這些機制包括存取權杖、身份驗證、角色和權限管理等。
自動化和版本控制:
CI/CD鏡像通常會自動化容器鏡像的建置和主體流程,並在容器鏡像庫中建立不同版本的鏡像,以便進行版本控制
build-image:
tags:
- macos
stage: build
image : docker
variables:
# using "docker" as the host is only possible if you alias the service below
# DOCKER_HOST: tcp://docker:2375
# could be wrong here but although Docker defaults to overlay2,
# Docker-in-Docker (DIND) does not according to the following GitLab doc:
# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-the-overlayfs-driver
# DOCKER_DRIVER: overlay2
# DOCKER_TLS_CERTDIR: ""
# services:
# - name: docker:dind
# alias: docker
# command: ["--tls=false"]
before_script:
# - docker info
# - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin "${CI_REGISTRY}"
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
script:
- echo "build start"
- docker build .
--tag ${CI_REGISTRY_IMAGE}:$IMAGE_VERSION
- echo $CI_REGISTRY_USER ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} ${CI_REGISTRY_IMAGE}
# --tag ${CI_REGISTRY_IMAGE}:$BUILD_VERSION
# # - export DOCKER_HOST=tcp://127.0.0.1:2375
- echo "docker build finished"
- echo "docker push started"
- docker push ${CI_REGISTRY_IMAGE}
- echo "docker push finished"