stages: - build - deploy variables: DOCKER_IMAGE_NAME: file-system-server DOCKER_TAG: latest CI_REGISTRY: "192.168.1.154:31010" CI_REGISTRY_USER: "docker" CI_REGISTRY_PASSWORD: "dockerxn001624." before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY # 构建镜像 build_image: stage: build image: 192.168.1.154:31010/alpine:latest script: - apk add --no-cache docker-cli - docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG . only: - main # 部署服务 deploy_service: stage: deploy image: 192.168.1.154:31010/docker/compose:latest script: # 停止旧容器(如果存在) - docker-compose down --remove-orphans || true # 重新构建并启动服务 - docker-compose up -d --build # 清理未使用的镜像 - docker image prune -f tags: - shell # 假设您的 GitLab Runner 是 Shell Executor,可以直接操作宿主机 Docker only: - main