提交 ced27fa6 作者: 方治民

ci: 完善本地 gitlab-ci 配置

上级 86468443
流水线 #87 已失败 于阶段
in 1 分 25 秒
# 变量
variables:
# 本地镜像地址,用于拉取镜像以及发布
REGISTRY_REMOTE: localhost:18500
# 容器名称
CONTAINER_NAME: basic-api
# 对外访问端口
EXPOSE_PORT: 8081
# Pipelines 步骤
stages:
- build
......@@ -13,46 +22,46 @@ cache:
# 编译项目
build-job:
stage: build
image: java:8
image: $REGISTRY_REMOTE/jdk-17
only:
- beta
- preview
- tags
# 使用 CI Runner,在 GitLab-Runner 中注册好的 Runner
tags:
- CI
- YR-CI
before_script:
- chmod +x ./gradlew
script:
- ./gradlew assemble
- ./gradlew app:assemble
artifacts:
# 配置构建结果过期时间
expire_in: 1 week
expire_in: 1 day
# 保留目录
paths:
- build/libs/*.jar
- app/build/libs/*.jar
# 发布,在本地构建镜像并推送到发布环境的镜像库
deploy-job:
stage: deploy
image: docker:latest
image: $REGISTRY_REMOTE/docker
# 部署依赖编译
dependencies:
- build-job
only:
- beta
- preview
- tags
# 使用 CD Runner,在 GitLab-Runner 中注册好的 Runner(此处配置成使用宿主环境构建)
tags:
- CD
- YR-CD
script:
# 基于 Dockerfile 构建镜像
- docker build -t $TAG .
# 登录到发布环境的私服
- docker login -u $REGISTRY_REMOTE_USER -p $REGISTRY_REMOTE_PASSWORD https://$REGISTRY_REMOTE
# 将刚刚构建的镜像推送到私服
- docker push $TAG
# 尝试删除上一个容器
- docker rm -f $CONTAINER_NAME || true
# 在本地运行构建好的镜像
- docker run -d --name $CONTAINER_NAME -p $EXPOSE_PORT:8081 $TAG
variables:
# 读取 GitLab CI/CD 配置的 Secret variables
REGISTRY_REMOTE: $REGISTRY_REMOTE
REGISTRY_REMOTE_USER: $REGISTRY_REMOTE_USER
REGISTRY_REMOTE_PASSWORD: $REGISTRY_REMOTE_PASSWORD
# 设置镜像 tag,使用 git tag 标识作为镜像 tag
TAG: ${REGISTRY_REMOTE}/basic/basic-api:${CI_BUILD_REF_NAME}
TAG: $REGISTRY_REMOTE/basic/$CONTAINER_NAME:$CI_BUILD_REF_NAME
# 指定基础镜像,在其上进行定制
FROM java:8
FROM localhost:18500/jdk-17
# 维护者信息
MAINTAINER ifzm <fangzhimin@yiring.com>
......@@ -10,14 +10,14 @@ VOLUME /data
VOLUME /logs
# 复制上下文目录下的 build/libs/app.jar 到容器里
COPY build/libs/app-0.0.1-SNAPSHOT.jar app.jar
COPY app/build/libs/app-0.0.1-SNAPSHOT.jar app.jar
# bash方式执行,使 app.jar 可访问
# RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /app.jar"
# 声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8181
EXPOSE 8081
# 指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"]
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=beta"]
......@@ -13,7 +13,7 @@ spring:
name: "basic-api-app"
profiles:
include: auth, conf-patch
active: test
active: beta
# DEBUG
debug: false
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论