From 098e78671e87fb0591b7eaf54e24f4ed408bbcfa Mon Sep 17 00:00:00 2001 From: manhinhang Date: Mon, 22 Apr 2024 02:07:31 +0800 Subject: [PATCH] refactor: move gradle build in dockerfile --- .github/workflows/build-test.yml | 10 ---------- .github/workflows/deploy-dockerhub.yml | 10 ---------- Dockerfile | 21 +++++++++++++++++---- Dockerfile.template | 21 +++++++++++++++++---- 4 files changed, 34 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 344eca2..2896c8e 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -22,16 +22,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - name: Build healthcheck tool - working-directory: healthcheck - run: ./gradlew build - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/deploy-dockerhub.yml b/.github/workflows/deploy-dockerhub.yml index fbf7946..870604c 100644 --- a/.github/workflows/deploy-dockerhub.yml +++ b/.github/workflows/deploy-dockerhub.yml @@ -17,16 +17,6 @@ jobs: timeout-minutes: 20 steps: - uses: actions/checkout@master - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - name: Build healthcheck tool - working-directory: healthcheck - run: ./gradlew build - name: Docker meta id: meta uses: docker/metadata-action@v5 diff --git a/Dockerfile b/Dockerfile index 2590944..69bce2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,6 +27,19 @@ RUN chmod +x ${IBC_PATH}/*.sh ${IBC_PATH}/*/*.sh # copy IBC/Jts configs COPY ibc/config.ini ${IBC_INI} +# temp container to build using gradle +FROM gradle:8.7.0-jdk17 AS healthcheck-tools +ENV APP_HOME=/usr/app/ +WORKDIR $APP_HOME +COPY healthcheck $APP_HOME + +RUN gradle clean build + +RUN mkdir -p $APP_HOME/build + +RUN unzip healthcheck/build/distributions/healthcheck.zip -d $APP_HOME/build +RUN unzip healthcheck-rest/build/distributions/healthcheck-rest-boot.zip -d $APP_HOME/build + FROM debian:bookworm-slim ARG IB_GATEWAY_MAJOR="10" ARG IB_GATEWAY_MINOR="19" @@ -56,7 +69,7 @@ ENV TWS_INSTALL_LOG=/root/Jts/tws_install.log \ IB_GATEWAY_VERSION=${IB_GATEWAY_MAJOR}${IB_GATEWAY_MINOR} # make dirs -RUN mkdir -p /tmp && mkdir -p ${IBC_PATH} && mkdir -p ${TWS_PATH} +RUN mkdir -p /tmp && mkdir -p ${IBC_PATH} && mkdir -p ${TWS_PATH} && mkdir -p /healthcheck # download IB TWS COPY --from=downloader /tmp/ibgw.sh /tmp/ibgw.sh @@ -69,11 +82,11 @@ COPY --from=downloader /opt/ibc /opt/ibc COPY --from=downloader /root/ibc /root/ibc # install healthcheck tool -ADD healthcheck/healthcheck/build/distributions/healthcheck.tar / +COPY --from=healthcheck-tools /usr/app/build/healthcheck /healthcheck ENV PATH="${PATH}:/healthcheck/bin" -ADD healthcheck/healthcheck-rest/build/distributions/healthcheck-rest-boot.tar / -ENV PATH="${PATH}:/healthcheck-rest-boot/bin" +COPY --from=healthcheck-tools /usr/app/build/healthcheck-rest-boot /healthcheck-rest +ENV PATH="${PATH}:/healthcheck-rest/bin" # copy cmd script WORKDIR /root diff --git a/Dockerfile.template b/Dockerfile.template index 30febdd..5f62e54 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -27,6 +27,19 @@ RUN chmod +x ${IBC_PATH}/*.sh ${IBC_PATH}/*/*.sh # copy IBC/Jts configs COPY ibc/config.ini ${IBC_INI} +# temp container to build using gradle +FROM gradle:8.7.0-jdk17 AS healthcheck-tools +ENV APP_HOME=/usr/app/ +WORKDIR $APP_HOME +COPY healthcheck $APP_HOME + +RUN gradle clean build + +RUN mkdir -p $APP_HOME/build + +RUN unzip healthcheck/build/distributions/healthcheck.zip -d $APP_HOME/build +RUN unzip healthcheck-rest/build/distributions/healthcheck-rest-boot.zip -d $APP_HOME/build + FROM debian:bookworm-slim ARG IB_GATEWAY_MAJOR="###IB_GATEWAY_MAJOR###" ARG IB_GATEWAY_MINOR="###IB_GATEWAY_MINOR###" @@ -57,7 +70,7 @@ ENV TWS_INSTALL_LOG=/root/Jts/tws_install.log \ IB_GATEWAY_VERSION=${IB_GATEWAY_MAJOR}${IB_GATEWAY_MINOR} # make dirs -RUN mkdir -p /tmp && mkdir -p ${IBC_PATH} && mkdir -p ${TWS_PATH} +RUN mkdir -p /tmp && mkdir -p ${IBC_PATH} && mkdir -p ${TWS_PATH} && mkdir -p /healthcheck # download IB TWS COPY --from=downloader /tmp/ibgw.sh /tmp/ibgw.sh @@ -70,11 +83,11 @@ COPY --from=downloader /opt/ibc /opt/ibc COPY --from=downloader /root/ibc /root/ibc # install healthcheck tool -ADD healthcheck/healthcheck/build/distributions/healthcheck.tar / +COPY --from=healthcheck-tools /usr/app/build/healthcheck /healthcheck ENV PATH="${PATH}:/healthcheck/bin" -ADD healthcheck/healthcheck-rest/build/distributions/healthcheck-rest-boot.tar / -ENV PATH="${PATH}:/healthcheck-rest-boot/bin" +COPY --from=healthcheck-tools /usr/app/build/healthcheck-rest-boot /healthcheck-rest +ENV PATH="${PATH}:/healthcheck-rest/bin" # copy cmd script WORKDIR /root