diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 229bd24..16efbf0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: id: create_release uses: actions/create-release@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} with: # 使用 tag_name 而不是 github.ref tag_name: ${{ github.ref_name }} @@ -41,7 +41,7 @@ jobs: - name: Upload sql.zip uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ github.workspace }}/novel-common/target/build/sql.zip @@ -51,7 +51,7 @@ jobs: - name: Upload novel-crawl.zip uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ github.workspace }}/novel-crawl/target/build/novel-crawl.zip @@ -61,7 +61,7 @@ jobs: - name: Upload novel-front.zip uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ github.workspace }}/novel-front/target/build/novel-front.zip @@ -71,9 +71,50 @@ jobs: - name: Upload novel-admin.zip uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ github.workspace }}/novel-admin/target/build/novel-admin.zip asset_name: novel-admin.zip - asset_content_type: application/zip \ No newline at end of file + asset_content_type: application/zip + + + # 登录 Docker Hub + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + # 构建并推送 novel-front 镜像 + - name: Build and Push novel-front Docker Image + uses: docker/build-push-action@v5 + with: + context: ./novel-front/target/build + file: ./novel-front/target/build/Dockerfile + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/novel-front:latest + ${{ secrets.DOCKERHUB_USERNAME }}/novel-front:${{ github.ref_name }} + + # 构建并推送 novel-admin 镜像 + - name: Build and Push novel-admin Docker Image + uses: docker/build-push-action@v5 + with: + context: ./novel-admin/target/build + file: ./novel-admin/target/build/Dockerfile + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/novel-admin:latest + ${{ secrets.DOCKERHUB_USERNAME }}/novel-admin:${{ github.ref_name }} + + # 构建并推送 novel-crawl 镜像 + - name: Build and Push novel-crawl Docker Image + uses: docker/build-push-action@v5 + with: + context: ./novel-crawl/target/build + file: ./novel-crawl/target/build/Dockerfile + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/novel-crawl:latest + ${{ secrets.DOCKERHUB_USERNAME }}/novel-crawl:${{ github.ref_name }} diff --git a/novel-admin/src/main/build/docker/Dockerfile b/novel-admin/src/main/build/docker/Dockerfile index c3510da..f2ba930 100644 --- a/novel-admin/src/main/build/docker/Dockerfile +++ b/novel-admin/src/main/build/docker/Dockerfile @@ -1,9 +1,13 @@ -FROM openjdk:8 -ADD novel-admin.jar /root +FROM eclipse-temurin:21-jre +RUN useradd -m appuser +WORKDIR /app +COPY novel-admin.jar /app/novel-admin.jar +RUN chown -R appuser:appuser /app +USER appuser ENV dburl="" ENV username="" ENV password="" ENV redishost = "" ENV redisport = "" ENV redispwd = "" -ENTRYPOINT ["sh","-c","java -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.redis.host=${redishost} -Dspring.redis.port=${redisport} -Dspring.redis.password=${redispwd} -jar /root/novel-admin.jar"] \ No newline at end of file +ENTRYPOINT ["java -Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.data.redis.host=${redishost} -Dspring.data.redis.port=${redisport} -Dspring.data.redis.password=${redispwd} -jar /app/novel-admin.jar"] diff --git a/novel-crawl/src/main/build/docker/Dockerfile b/novel-crawl/src/main/build/docker/Dockerfile index 051e6ec..fd67bc6 100644 --- a/novel-crawl/src/main/build/docker/Dockerfile +++ b/novel-crawl/src/main/build/docker/Dockerfile @@ -1,9 +1,13 @@ -FROM openjdk:8 -ADD novel-crawl.jar /root +FROM eclipse-temurin:21-jre +RUN useradd -m appuser +WORKDIR /app +COPY novel-crawl.jar /app/novel-crawl.jar +RUN chown -R appuser:appuser /app +USER appuser ENV dburl="" ENV username="" ENV password="" ENV redishost = "" ENV redisport = "" ENV redispwd = "" -ENTRYPOINT ["sh","-c","java -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.redis.host=${redishost} -Dspring.redis.port=${redisport} -Dspring.redis.password=${redispwd} -jar /root/novel-crawl.jar"] \ No newline at end of file +ENTRYPOINT ["java -Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.data.redis.host=${redishost} -Dspring.data.redis.port=${redisport} -Dspring.data.redis.password=${redispwd} -jar /app/novel-crawl.jar"] diff --git a/novel-front/src/main/build/docker/Dockerfile b/novel-front/src/main/build/docker/Dockerfile index d197c33..9203e85 100644 --- a/novel-front/src/main/build/docker/Dockerfile +++ b/novel-front/src/main/build/docker/Dockerfile @@ -1,9 +1,13 @@ -FROM openjdk:8 -ADD novel-front.jar /root +FROM eclipse-temurin:21-jre +RUN useradd -m appuser +WORKDIR /app +COPY novel-front.jar /app/novel-front.jar +RUN chown -R appuser:appuser /app +USER appuser ENV dburl="" ENV username="" ENV password="" ENV redishost = "" ENV redisport = "" ENV redispwd = "" -ENTRYPOINT ["sh","-c","java -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.redis.host=${redishost} -Dspring.redis.port=${redisport} -Dspring.redis.password=${redispwd} -jar /root/novel-front.jar"] +ENTRYPOINT ["java -Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -Dspring.datasource.url=${dburl} -Dspring.datasource.username=${username} -Dspring.datasource.password=${password} -Dspring.data.redis.host=${redishost} -Dspring.data.redis.port=${redisport} -Dspring.data.redis.password=${redispwd} -jar /app/novel-front.jar"]