|
|
@@ -3,53 +3,74 @@ type: docker
|
|
|
name: eai-backend
|
|
|
|
|
|
steps:
|
|
|
- # 步骤 1: Maven 构建
|
|
|
- - name: build-with-maven
|
|
|
- image: maven:3.8-openjdk-17-slim
|
|
|
- volumes:
|
|
|
- - name: maven-cache
|
|
|
- path: /root/.m2
|
|
|
- commands:
|
|
|
- - mvn clean package -DskipTests
|
|
|
-
|
|
|
- # 步骤 2: 构建 Docker 镜像并上传
|
|
|
- - name: build-and-push-docker-image
|
|
|
- image: plugins/docker
|
|
|
- settings:
|
|
|
- username:
|
|
|
- from_secret: docker-username
|
|
|
- password:
|
|
|
- from_secret: docker-password
|
|
|
- registry: registry.cn-hangzhou.aliyuncs.com
|
|
|
- repo: registry.cn-hangzhou.aliyuncs.com/english-ai/eai-backend
|
|
|
- tags: latest
|
|
|
- dockerfile: Dockerfile
|
|
|
-
|
|
|
- # 步骤 3: 通过ssh进行部署
|
|
|
- - name: deploy-with-ssh
|
|
|
+ # 唯一的步骤: 通过SSH在服务器上构建Docker镜像并运行容器
|
|
|
+ - name: build-and-run-on-server
|
|
|
image: appleboy/drone-ssh
|
|
|
environment:
|
|
|
+ WORK_DIR: /root/seeai
|
|
|
CONTAINER_NAME: eai-backend
|
|
|
- DOCKER_USERNAME:
|
|
|
- from_secret: docker-username
|
|
|
- DOCKER_PASSWORD:
|
|
|
- from_secret: docker-password
|
|
|
- DOCKER_REGISTRY: registry.cn-hangzhou.aliyuncs.com
|
|
|
- IMAGE_NAME: english-ai/eai-backend
|
|
|
+ IMAGE_NAME: eai-backend
|
|
|
IMAGE_TAG: latest
|
|
|
+ JAR_NAME: EAI-Backend-0.0.1-SNAPSHOT.jar
|
|
|
settings:
|
|
|
host: 139.196.252.184
|
|
|
username: root
|
|
|
password:
|
|
|
from_secret: server-password
|
|
|
port: 22
|
|
|
- envs: [DOCKER_USERNAME,DOCKER_PASSWORD,DOCKER_REGISTRY,CONTAINER_NAME,IMAGE_NAME,IMAGE_TAG]
|
|
|
script:
|
|
|
- - echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin $DOCKER_REGISTRY
|
|
|
- - tag=$DOCKER_REGISTRY/$IMAGE_NAME:$IMAGE_TAG
|
|
|
- - docker pull $tag
|
|
|
- - if [ $(docker ps -aq -f name=eai-backend) ]; then docker rm -f eai-backend; fi
|
|
|
- - docker run -d -p 8070:8080 --name eai-backend -v $(pwd)/logs:/app/logs registry.cn-hangzhou.aliyuncs.com/english-ai/eai-backend
|
|
|
+ - cd $WORK_DIR
|
|
|
+ - docker build -t $IMAGE_NAME:$IMAGE_TAG --build-arg JAR_FILE=$JAR_NAME .
|
|
|
+ - if [ $(docker ps -aq -f name=$CONTAINER_NAME) ]; then docker rm -f $CONTAINER_NAME; fi
|
|
|
+ - docker run -d -p 8070:8080 --name $CONTAINER_NAME -v $(pwd)/logs:/app/logs $IMAGE_NAME:$IMAGE_TAG
|
|
|
+
|
|
|
+# # 步骤 1: Maven 构建
|
|
|
+# - name: build-with-maven
|
|
|
+# image: maven:3.8-openjdk-17-slim
|
|
|
+# volumes:
|
|
|
+# - name: maven-cache
|
|
|
+# path: /root/.m2
|
|
|
+# commands:
|
|
|
+# - mvn clean package -DskipTests
|
|
|
+#
|
|
|
+# # 步骤 2: 构建 Docker 镜像并上传
|
|
|
+# - name: build-and-push-docker-image
|
|
|
+# image: plugins/docker
|
|
|
+# settings:
|
|
|
+# username:
|
|
|
+# from_secret: docker-username
|
|
|
+# password:
|
|
|
+# from_secret: docker-password
|
|
|
+# registry: registry.cn-hangzhou.aliyuncs.com
|
|
|
+# repo: registry.cn-hangzhou.aliyuncs.com/english-ai/eai-backend
|
|
|
+# tags: latest
|
|
|
+# dockerfile: Dockerfile
|
|
|
+#
|
|
|
+# # 步骤 3: 通过ssh进行部署
|
|
|
+# - name: deploy-with-ssh
|
|
|
+# image: appleboy/drone-ssh
|
|
|
+# environment:
|
|
|
+# CONTAINER_NAME: eai-backend
|
|
|
+# DOCKER_USERNAME:
|
|
|
+# from_secret: docker-username
|
|
|
+# DOCKER_PASSWORD:
|
|
|
+# from_secret: docker-password
|
|
|
+# DOCKER_REGISTRY: registry.cn-hangzhou.aliyuncs.com
|
|
|
+# IMAGE_NAME: english-ai/eai-backend
|
|
|
+# IMAGE_TAG: latest
|
|
|
+# settings:
|
|
|
+# host: 139.196.252.184
|
|
|
+# username: root
|
|
|
+# password:
|
|
|
+# from_secret: server-password
|
|
|
+# port: 22
|
|
|
+# envs: [DOCKER_USERNAME,DOCKER_PASSWORD,DOCKER_REGISTRY,CONTAINER_NAME,IMAGE_NAME,IMAGE_TAG]
|
|
|
+# script:
|
|
|
+# - echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin $DOCKER_REGISTRY
|
|
|
+# - tag=$DOCKER_REGISTRY/$IMAGE_NAME:$IMAGE_TAG
|
|
|
+# - docker pull $tag
|
|
|
+# - if [ $(docker ps -aq -f name=eai-backend) ]; then docker rm -f eai-backend; fi
|
|
|
+# - docker run -d -p 8070:8080 --name eai-backend -v $(pwd)/logs:/app/logs registry.cn-hangzhou.aliyuncs.com/english-ai/eai-backend
|
|
|
|
|
|
volumes:
|
|
|
- name: maven-cache
|