From 1f886cc7627aaf54c07e7aea7c1eed68d4cc3cf0 Mon Sep 17 00:00:00 2001 From: Ismail Simsek Date: Tue, 9 Nov 2021 21:40:31 +0100 Subject: [PATCH 1/2] test docker image to github container registry --- .dockerignore | 4 +- .github/workflows/release-ghcr-latest.yml | 47 ----------------------- .github/workflows/release-latest-ghcr.yml | 29 ++++++++++++++ .github/workflows/release-latest.yml | 19 ++++----- .github/workflows/release.yml | 3 +- Dockerfile | 37 +++++------------- 6 files changed, 53 insertions(+), 86 deletions(-) delete mode 100644 .github/workflows/release-ghcr-latest.yml create mode 100644 .github/workflows/release-latest-ghcr.yml diff --git a/.dockerignore b/.dockerignore index 45d43e01..70bd77ba 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,6 @@ Dockerfile **/target/ -.idea/ \ No newline at end of file +.idea/ +.github/ +.run/ \ No newline at end of file diff --git a/.github/workflows/release-ghcr-latest.yml b/.github/workflows/release-ghcr-latest.yml deleted file mode 100644 index 2c9acaa2..00000000 --- a/.github/workflows/release-ghcr-latest.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: CI to Github Container Registry - -on: - push: - branches: [ master ] - -jobs: - - build: - runs-on: ubuntu-latest - steps: - - name: Check Out Repo - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to Github Container Registry - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - context: ./ - file: ./Dockerfile - builder: ${{ steps.buildx.outputs.name }} - push: true - # tags: memiiso/debezium-server-iceberg:latest - tags: ghcr.io/memiiso/debezium-server-iceberg:latest - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} \ No newline at end of file diff --git a/.github/workflows/release-latest-ghcr.yml b/.github/workflows/release-latest-ghcr.yml new file mode 100644 index 00000000..eb3f8382 --- /dev/null +++ b/.github/workflows/release-latest-ghcr.yml @@ -0,0 +1,29 @@ +name: CI to Github Container Registry + +on: + push: + branches: [ master ] + +jobs: + build: + name: Main + if: github.repository_owner == 'memiiso' + runs-on: ubuntu-latest + steps: + - name: Check Out Repo + uses: actions/checkout@v2 + + - name: Login to Github Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - uses: docker/build-push-action@v2 + name: Build & push Docker image + with: + context: ./ + file: ./Dockerfile + push: true + tags: ghcr.io/${{ github.repository_owner }}/debezium-server-iceberg:latest \ No newline at end of file diff --git a/.github/workflows/release-latest.yml b/.github/workflows/release-latest.yml index 64f284ab..601c86ee 100644 --- a/.github/workflows/release-latest.yml +++ b/.github/workflows/release-latest.yml @@ -10,25 +10,26 @@ env: jobs: build: name: Main + if: github.repository_owner == 'memiiso' runs-on: ubuntu-latest steps: - - name: Checkout + - name: Check Out Repo uses: actions/checkout@v2 - name: Set env run: | - echo "RELEASE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + echo "RELEASE_NAME=latest" >> $GITHUB_ENV echo "RELEASE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Build project - run: mvn -B package -Passembly --file pom.xml -Drevision=latest + run: mvn -B package -Passembly --file pom.xml -Drevision=${{ env.RELEASE_NAME }} - - name: Delete latest release + - name: Delete ${{ env.RELEASE_NAME }} release uses: dev-drprasad/delete-tag-and-release@v0.1.3 with: delete_release: true # default: false - tag_name: latest + tag_name: ${{ env.RELEASE_NAME }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -38,9 +39,9 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - name: Release master/latest - tag_name: latest - body: master branch release + name: Release ${{ env.RELEASE_NAME }} + tag_name: ${{ env.RELEASE_NAME }} + body: Release master branch draft: false prerelease: true - files: debezium-server-dist/target/debezium-server-dist-latest.zip \ No newline at end of file + files: debezium-server-dist/target/debezium-server-dist-${{ env.RELEASE_NAME }}.zip \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2d2c12cc..9e69ad58 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,9 +11,10 @@ env: jobs: build: name: Main + if: github.repository_owner == 'memiiso' runs-on: ubuntu-latest steps: - - name: Checkout + - name: Check Out Repo uses: actions/checkout@v2 - name: Set env diff --git a/Dockerfile b/Dockerfile index 8b1297d0..4b78a80a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,15 @@ FROM eclipse-temurin:11-jdk as builder - -# Downloading and installing Maven -ARG MAVEN_VERSION=3.8.3 -ARG USER_HOME_DIR="/root" -ARG SHA=1c12a5df43421795054874fd54bb8b37d242949133b5bf6052a063a13a93f13a20e6e9dae2b3d85b9c7034ec977bbc2b6e7f66832182b9c863711d78bfe60faa -ARG BASE_URL=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries - -RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ - && echo "Downlaoding maven" \ - && curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ - \ - && echo "Checking download hash" \ - && echo "${SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \ - \ - && echo "Unziping maven" \ - && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ - \ - && echo "Cleaning and setting links" \ - && rm -f /tmp/apache-maven.tar.gz \ - && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn - -ENV MAVEN_HOME /usr/share/maven -ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" - +RUN apt-get -qq update && apt-get -qq install maven unzip COPY . /app WORKDIR /app -RUN mvn clean package -Passembly -Dmaven.test.skip +RUN mvn clean package -Passembly -Dmaven.test.skip --quiet +RUN unzip /app/debezium-server-dist/target/debezium-server-dist*.zip -d appdist FROM eclipse-temurin:11-jre +COPY --from=builder /app/appdist/ /app/ + +WORKDIR /app +EXPOSE 8080 8083 +VOLUME ["/app/conf", "/app/data"] -COPY --from=builder /app/debezium-server-dist/target /app/target -RUN cp /app/target/debezium-server-dist-*-runner.jar /app/target/debezium-server-dist-runner.jar -ENTRYPOINT ["java", "-cp", "/app/target/debezium-server-dist-runner.jar:/opt/conf:/app/target/lib/*", "io.debezium.server.Main"] \ No newline at end of file +ENTRYPOINT ["/app/run.sh"] \ No newline at end of file From e80b41d8401f9a5d67457a63525c44bdd19e639c Mon Sep 17 00:00:00 2001 From: Ismail Simsek Date: Wed, 10 Nov 2021 21:14:40 +0100 Subject: [PATCH 2/2] add /opt/conf to classpath list --- debezium-server-dist/src/main/resources/distro/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debezium-server-dist/src/main/resources/distro/run.sh b/debezium-server-dist/src/main/resources/distro/run.sh index c23cfea2..a61d5604 100755 --- a/debezium-server-dist/src/main/resources/distro/run.sh +++ b/debezium-server-dist/src/main/resources/distro/run.sh @@ -21,4 +21,4 @@ fi RUNNER=$(ls debezium-server-*runner.jar) -exec $JAVA_BINARY $DEBEZIUM_OPTS $JAVA_OPTS -cp "$RUNNER"$PATH_SEP"conf"$PATH_SEP"lib/*" io.debezium.server.Main +exec $JAVA_BINARY $DEBEZIUM_OPTS $JAVA_OPTS -cp "$RUNNER"$PATH_SEP"conf"$PATH_SEP"lib/*"$PATH_SEP"/opt/conf" io.debezium.server.Main