diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..8da9fba --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,83 @@ +name: SpringCloud CI/CD with Docker +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + MODULE_1: gateway + MODULE_2: hello + MODULE_3: login + MODULE_4: provider_one + MODULE_5: provider_two + MODULE_6: provider_three + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 8 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '8' + cache: 'maven' + - name: Build with Maven + run: | + whoami + pwd + cd dasedevops_spring_demo + mvn -B package --file pom.xml + pwd + - name: Login to Aliyun Container Registry (ACR) + uses: aliyun/acr-login@v1 + with: + login-server: https://registry.cn-shanghai.aliyuncs.com + region-id: cn-shanghai # 3 + username: "${{ secrets.ACR_USERNAME }}" + password: "${{ secrets.ACR_PASSWORD }}" + - name: Build and push image + run: | + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_1:latest ./dasedevops_spring_demo/$MODULE_1 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_1:latest + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_2:latest ./dasedevops_spring_demo/$MODULE_2 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_2:latest + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_3:latest ./dasedevops_spring_demo/$MODULE_3 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_3:latest + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_4:latest ./dasedevops_spring_demo/$MODULE_4 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_4:latest + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_5:latest ./dasedevops_spring_demo/$MODULE_5 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_5:latest + docker build -t ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_6:latest ./dasedevops_spring_demo/$MODULE_6 + docker push ${{ secrets.ALI_NAMESPACE_URL }}/$MODULE_6:latest + + - name: Copy single file to remote + uses: garygrossgarten/github-action-scp@release + with: + local: ./dasedevops_spring_demo/docker-compose.yml + remote: scp/devops_demo/docker-compose.yml + host: ${{ secrets.HOST }} + username: ${{ secrets.USER_NAME }} + password: ${{ secrets.USER_PASSWORD }} + port: ${{ secrets.PORT }} + + depoly: + needs: [ build ] + name: Docker Pull And Docker-compose Run + runs-on: ubuntu-latest + steps: + - name: executing remote ssh commands using password + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USER_NAME }} + password: ${{ secrets.USER_PASSWORD }} + port: ${{ secrets.PORT }} + script: | + docker-compose -f scp/devops_demo/docker-compose.yml up -d + docker-compose -f scp/devops_demo/docker-compose.yml stop + docker-compose -f scp/devops_demo/docker-compose.yml pull + docker-compose -f scp/devops_demo/docker-compose.yml up -d + docker image prune -f \ No newline at end of file diff --git a/README.md b/README.md index 45542ff..7f2619b 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,6 @@ 后端使用Springboot作为框架,还使用了下面几个微服务管理组件:微服务注册中心:Nacos、微服务配置中心:Nacos、微服务服务调用客户端:Feign、路由控制:Spring Cloud Gateway。 +我修改还修改? - +再来6 diff --git a/dasedevops_spring_demo/docker-compose.yml b/dasedevops_spring_demo/docker-compose.yml new file mode 100644 index 0000000..4b8d1ff --- /dev/null +++ b/dasedevops_spring_demo/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3" + +services: + providerOne: + image: ${{ secrets.ALI_NAMESPACE_URL }}/provider_one:latest + ports: + - "8666:8666" + + gateway: + image: ${{ secrets.ALI_NAMESPACE_URL }}/gateway:latest + ports: + - "8080:8080" + + login: + image: ${{ secrets.ALI_NAMESPACE_URL }}/login:latest + ports: + - "8000:8000" + + hello: + image: ${{ secrets.ALI_NAMESPACE_URL }}/hello:latest + ports: + - "8001:8001" + + providerTwo: + image: ${{ secrets.ALI_NAMESPACE_URL }}/provider_two:latest + ports: + - "8667:8667" + + providerThree: + image: ${{ secrets.ALI_NAMESPACE_URL }}/provider_three:latest + ports: + - "8668:8668" \ No newline at end of file diff --git a/dasedevops_spring_demo/gateway/dockerfile b/dasedevops_spring_demo/gateway/dockerfile new file mode 100644 index 0000000..db303b6 --- /dev/null +++ b/dasedevops_spring_demo/gateway/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /gateway.jar +ENTRYPOINT ["java","-jar","/gateway.jar"] +EXPOSE 8080 \ No newline at end of file diff --git a/dasedevops_spring_demo/hello/dockerfile b/dasedevops_spring_demo/hello/dockerfile new file mode 100644 index 0000000..c02774f --- /dev/null +++ b/dasedevops_spring_demo/hello/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /hello.jar +ENTRYPOINT ["java","-jar","/hello.jar"] +EXPOSE 8001 \ No newline at end of file diff --git a/dasedevops_spring_demo/login/dockerfile b/dasedevops_spring_demo/login/dockerfile new file mode 100644 index 0000000..ac1f1c7 --- /dev/null +++ b/dasedevops_spring_demo/login/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /login.jar +ENTRYPOINT ["java","-jar","/login.jar"] +EXPOSE 8000 \ No newline at end of file diff --git a/dasedevops_spring_demo/provider_one/dockerfile b/dasedevops_spring_demo/provider_one/dockerfile new file mode 100644 index 0000000..4066233 --- /dev/null +++ b/dasedevops_spring_demo/provider_one/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /provider_one.jar +ENTRYPOINT ["java","-jar","/provider_one.jar"] +EXPOSE 8666 \ No newline at end of file diff --git a/dasedevops_spring_demo/provider_three/dockerfile b/dasedevops_spring_demo/provider_three/dockerfile new file mode 100644 index 0000000..e05a549 --- /dev/null +++ b/dasedevops_spring_demo/provider_three/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /provider_three.jar +ENTRYPOINT ["java","-jar","/provider_three.jar"] +EXPOSE 8668 \ No newline at end of file diff --git a/dasedevops_spring_demo/provider_two/dockerfile b/dasedevops_spring_demo/provider_two/dockerfile new file mode 100644 index 0000000..a7e6fc6 --- /dev/null +++ b/dasedevops_spring_demo/provider_two/dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8 +MAINTAINER ningzhicheng +VOLUME /tmp +ADD ./target/*.jar /provider_two.jar +ENTRYPOINT ["java","-jar","/provider_two.jar"] +EXPOSE 8667 \ No newline at end of file