38 lines
902 B
YAML
38 lines
902 B
YAML
stages:
|
||
- build
|
||
- deploy
|
||
|
||
variables:
|
||
DOCKER_IMAGE_NAME: file-system-server
|
||
DOCKER_TAG: latest
|
||
|
||
# 构建镜像
|
||
build_image:
|
||
stage: build
|
||
image: docker:20.10.16
|
||
services:
|
||
- docker:20.10.16-dind
|
||
script:
|
||
- docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG .
|
||
# 如果有私有仓库,可以在这里 push
|
||
# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||
# - docker push $DOCKER_IMAGE_NAME:$DOCKER_TAG
|
||
only:
|
||
- main
|
||
|
||
# 部署服务
|
||
deploy_service:
|
||
stage: deploy
|
||
image: 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
|