Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Java CI with Maven and Docker

on:
push:
branches: [ "master", "main" ]
pull_request:
branches: [ "master", "main" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven

- name: Verify Java version
run: java -version

- name: Build with Maven
run: mvn -B clean package --file pom.xml

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=sha
type=ref,event=branch

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
37 changes: 0 additions & 37 deletions .github/workflows/maven.yml

This file was deleted.

35 changes: 26 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,26 @@
FROM eclipse-temurin:17-jdk-alpine
MAINTAINER megadotnet
ENV TZ=Asia/Shanghai
VOLUME /tmp
ARG JAR_FILE
ADD target/*.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

HEALTHCHECK --start-period=30s --interval=30s --timeout=5s --retries=3 CMD curl -m 5 --silent --fail --request GET http://localhost:7080/actuator/health | jq --exit-status -n 'inputs | if has("status") then .status=="UP" else false end' > /dev/null || exit 1
FROM eclipse-temurin:21-jdk-jammy AS build

RUN apt-get update && apt-get install -y maven

WORKDIR /app

COPY pom.xml .
COPY src ./src

RUN mvn clean package -DskipTests

FROM eclipse-temurin:21-jre-jammy

ENV SERVER_PORT=8080

RUN groupadd -r appuser && useradd -r -g appuser appuser

USER appuser

WORKDIR /app

COPY --from=build /app/target/*.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]
6 changes: 2 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
<packaging>jar</packaging>
<description>spring-boot demo application</description>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<commons.io.version>2.14.0</commons.io.version>
<commons-lang.version>3.14.0</commons-lang.version>
<jjwt.version>0.6.0</jjwt.version>
Expand All @@ -30,8 +29,7 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>21</source>
<target>21</target>
<release>21</release>
</configuration>
</plugin>
<plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public class MailServiceImpl implements IMailService {

private String baseUrlValue;

public MailServiceImpl(JavaMailSender javaMailSender, MessageSource messageSource, SpringTemplateEngine templateEngine) {
public MailServiceImpl(JavaMailSender javaMailSender, @org.springframework.beans.factory.annotation.Qualifier("messageSource") MessageSource messageSource, SpringTemplateEngine templateEngine) {

this.javaMailSender = javaMailSender;
this.messageSource = messageSource;
Expand Down
Loading