diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml new file mode 100644 index 0000000..9cff07c --- /dev/null +++ b/.github/workflows/build-docker-image.yml @@ -0,0 +1,43 @@ +name: Deploy on Docker Hub + +on: + push: + branches: + - develop + +jobs: + build-docker-image: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-disabled: true + + - name: Docker login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Build and tag Docker image + run: | + cd customer-service + ./gradlew clean build -x test + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/customer-service:${{ github.sha }} . + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/customer-service:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/customer-service:latest + + - name: Push Docker image to DockerHub + run: | + docker push ${{ secrets.DOCKERHUB_USERNAME }}/customer-service:${{ github.sha }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/customer-service:latest diff --git a/customer-service/Dockerfile b/customer-service/Dockerfile new file mode 100644 index 0000000..200c93c --- /dev/null +++ b/customer-service/Dockerfile @@ -0,0 +1,13 @@ +FROM openjdk:17-jdk-slim + +WORKDIR /app + +COPY build/libs/customer-service-0.0.1-SNAPSHOT.jar app.jar + +ENV DB_HOST=db_host_placeholder +ENV DB_PORT=3306 +ENV DB_NAME=db_name_placeholder +ENV DB_USERNAME=db_user_placeholder +ENV DB_PASSWORD=db_password_placeholder + +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file