-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* ci: Add CI/CD support for Docker image building and pushing * chore: Configure Docker multi-stage build for application * test: Add the 'ci/docker-ci-pipeline' branch from the list of branches. * fix: Removed the 'ci/docker-ci-pipeline' branch from the list of branches. * fix: Docker Build Update with Environment Profile Setting * refactor: Update Docker ci Pipeline * test: Docker ci Pipeline * refactor: Removed the 'ci/docker-ci-pipeline' branch from the list of branches to trigger the workflow. * refactor(#70): Split docker-ci.yaml into docker-ci-dev.yaml and docker-ci-prod.yaml * ci(#70): Update Docker Dev Image release tag format in docker-ci-dev.yml
- Loading branch information
1 parent
a461979
commit ea2956c
Showing
3 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
name: Build and Push Docker Image | ||
|
||
on: | ||
push: | ||
branches: | ||
- dev | ||
|
||
jobs: | ||
build-and-push: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Create src/main/resources/bootstrap.yml | ||
run: | | ||
mkdir -p src/main/resources | ||
echo "encrypt:" > src/main/resources/bootstrap.yml | ||
echo " key: '${{ secrets.ENCRYPTKEY }}'" >> src/main/resources/bootstrap.yml | ||
- name: Login to GitHub Container Registry | ||
run: echo ${{ secrets.GTOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin | ||
|
||
- name: Create Release Name | ||
id: release_name | ||
run: | | ||
echo "::set-output name=release_name::v-$(date +'%Y.%m.%d-%H%M%S')" | ||
- name: Build and Push Docker Dev Image | ||
run: | | ||
RELEASE_NAME="${{ steps.release_name.outputs.release_name }}" | ||
docker build --build-arg SPRING_PROFILES_ACTIVE=dev -t my-admin-server:latest -f multistage.Dockerfile . | ||
docker tag my-admin-server:latest ghcr.io/liberty52/liberty52-admin-server:dev$RELEASE_NAME | ||
docker push ghcr.io/liberty52/liberty52-admin-server:dev$RELEASE_NAME | ||
- name: Create GitHub Release | ||
uses: actions/create-release@v1 | ||
with: | ||
tag_name: ${{ steps.release_name.outputs.release_name }} | ||
release_name: Release ${{ steps.release_name.outputs.release_name }} | ||
generateReleaseNotes: true | ||
draft: false | ||
prerelease: false | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GTOKEN }} | ||
|
||
- name: Clean up | ||
run: docker logout ghcr.io |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: Build and Push Docker Image | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build-and-push: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Create src/main/resources/bootstrap.yml | ||
run: | | ||
mkdir -p src/main/resources | ||
echo "encrypt:" > src/main/resources/bootstrap.yml | ||
echo " key: '${{ secrets.ENCRYPTKEY }}'" >> src/main/resources/bootstrap.yml | ||
- name: Login to GitHub Container Registry | ||
run: echo ${{ secrets.GTOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin | ||
|
||
- name: Build and Push Docker Prod Image | ||
run: | | ||
docker build --build-arg SPRING_PROFILES_ACTIVE=prod -t my-admin-server:latest -f multistage.Dockerfile . | ||
docker tag my-admin-server:latest ghcr.io/liberty52/liberty52-admin-server:prod-v${{ github.sha }} | ||
docker push ghcr.io/liberty52/liberty52-admin-server:prod-v${{ github.sha }} | ||
- name: Clean up | ||
run: docker logout ghcr.io |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
FROM gradle:7.4-jdk17 AS builder | ||
WORKDIR /app | ||
COPY build.gradle . | ||
COPY settings.gradle . | ||
COPY src src | ||
RUN gradle assemble | ||
|
||
FROM openjdk:17-alpine | ||
VOLUME /tmp | ||
ARG JAR_FILE=/app/build/libs/*.jar | ||
COPY --from=builder ${JAR_FILE} app.jar | ||
EXPOSE 8080 | ||
ARG SPRING_PROFILES_ACTIVE=dev | ||
ENV SPRING_PROFILES_ACTIVE=$SPRING_PROFILES_ACTIVE | ||
ENTRYPOINT ["java","-jar", "app.jar","-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}"] |