From 4f8c21ca426cda4a80d6b319d50470ad7d71902c Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Fri, 14 Apr 2023 15:35:38 +0530 Subject: [PATCH 1/8] Updating Dockerfile with multistage --- docker/docker-compose-quickstart/Dockerfile | 42 ++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/docker/docker-compose-quickstart/Dockerfile b/docker/docker-compose-quickstart/Dockerfile index cb59b21aa6d7..978ed683f4fb 100644 --- a/docker/docker-compose-quickstart/Dockerfile +++ b/docker/docker-compose-quickstart/Dockerfile @@ -9,18 +9,34 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.15 - -EXPOSE 8585 +# Build stage +FROM alpine:3.15 AS build +ENV RELEASE_URL="https://github.com/open-metadata/OpenMetadata/releases/download/1.0.0-alpha-release/openmetadata-1.0.0-alpha.tar.gz" +RUN mkdir -p /opt/openmetadata && \ + wget ${RELEASE_URL} && \ + tar zxvf openmetadata-*.tar.gz -C /opt/openmetadata --strip-components 1 && \ + rm openmetadata-*.tar.gz -RUN apk update \ - && apk upgrade \ - && apk add --update wget curl bash openjdk11 \ - && rm -rf /var/cache/apk/* +# Final stage +FROM alpine:3.15 +ARG BUILD_DATE +ARG COMMIT_ID +LABEL maintainer="OpenMetadata" +LABEL org.open-metadata.image.authors="support@openmetadata.org" +LABEL org.open-metadata.vendor="OpenMetadata" +LABEL org.open-metadata.releaseversion="1.0.0-alpha" +LABEL org.open-metadata.description="OpenMetadata is an open source platform for metadata management and discovery." +LABEL org.open-metadata.url="https://open-metadata.org/" +LABEL org.open-metadata.vcs-url="https://github.com/open-metadata/OpenMetadata" +LABEL org.open-metadata.build-date=$BUILD_DATE +LABEL org.open-metadata.commit-id=$COMMIT_ID -COPY docker/openmetadata-start.sh docker/openmetadata.yaml ./ -RUN wget https://github.com/open-metadata/OpenMetadata/releases/download/1.0.0-alpha-release/openmetadata-1.0.0-alpha.tar.gz && \ - tar zxvf openmetadata-*.tar.gz && \ - rm openmetadata-*.tar.gz -RUN chmod 777 openmetadata-start.sh -CMD ["./openmetadata-start.sh"] +EXPOSE 8585 8586 +COPY docker/openmetadata-start.sh ./ +COPY --from=build /opt/openmetadata /opt/openmetadata +RUN apk add --update bash openjdk11-jre && \ + rm -rf /var/cache/apk/* && \ + chmod 777 openmetadata-start.sh +WORKDIR /opt/openmetadata +ENTRYPOINT [ "/bin/bash" ] +CMD ["/openmetadata-start.sh"] \ No newline at end of file From c9840dd5b334e0fad1f3f44fa8870e8b2a9e68c2 Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Fri, 14 Apr 2023 16:11:29 +0530 Subject: [PATCH 2/8] Updating reviewed changes --- docker/docker-compose-quickstart/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose-quickstart/Dockerfile b/docker/docker-compose-quickstart/Dockerfile index 978ed683f4fb..ecca60a550d3 100644 --- a/docker/docker-compose-quickstart/Dockerfile +++ b/docker/docker-compose-quickstart/Dockerfile @@ -24,7 +24,7 @@ ARG COMMIT_ID LABEL maintainer="OpenMetadata" LABEL org.open-metadata.image.authors="support@openmetadata.org" LABEL org.open-metadata.vendor="OpenMetadata" -LABEL org.open-metadata.releaseversion="1.0.0-alpha" +LABEL org.open-metadata.release-version="1.0.0-alpha" LABEL org.open-metadata.description="OpenMetadata is an open source platform for metadata management and discovery." LABEL org.open-metadata.url="https://open-metadata.org/" LABEL org.open-metadata.vcs-url="https://github.com/open-metadata/OpenMetadata" From e8ca40baa25d46aae5daa9479014d6c46f9a6f8f Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 12:55:17 +0530 Subject: [PATCH 3/8] Docker Development changes --- docker/development/Dockerfile | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 14c8c60dd8f1..9c03776fe07f 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -9,17 +9,27 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.15 - -EXPOSE 8585 +# Stage 1: Build stage +FROM alpine:3.15 AS builder -RUN apk update \ - && apk upgrade \ - && apk add --update wget curl bash openjdk11 \ - && rm -rf /var/cache/apk/* -COPY docker/openmetadata-start.sh ./ COPY openmetadata-dist/target/openmetadata-*.tar.gz / + RUN tar zxvf openmetadata-*.tar.gz && \ rm openmetadata-*.tar.gz + +# Stage 2: Production stage +FROM alpine:3.15 + +EXPOSE 8585 + +RUN apk add --update bash openjdk11-jre && \ + rm -rf /var/cache/apk/* + +COPY --from=builder /openmetadata-*/ /opt/openmetadata/ +COPY docker/openmetadata-start.sh / + RUN chmod 777 openmetadata-start.sh -CMD ["./openmetadata-start.sh"] \ No newline at end of file + +WORKDIR /opt/openmetadata +ENTRYPOINT [ "/bin/bash" ] +CMD ["/openmetadata-start.sh"] \ No newline at end of file From 625d0cc9fd72de29669f50a9c9f28c21fc6c1113 Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 13:23:45 +0530 Subject: [PATCH 4/8] Docker workflow changes --- .github/workflows/docker-openmetadata-server.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/docker-openmetadata-server.yml b/.github/workflows/docker-openmetadata-server.yml index ac48e2d7e4be..8277b32a0533 100644 --- a/.github/workflows/docker-openmetadata-server.yml +++ b/.github/workflows/docker-openmetadata-server.yml @@ -113,6 +113,10 @@ jobs: push_to_docker_hub: runs-on: ubuntu-latest env: + - name: Set build arguments + run: | + echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV + echo "COMMIT_ID=${{ github.sha }}" >> $GITHUB_ENV DOCKER_RELEASE_TAG: ${{ github.event.inputs.DOCKER_RELEASE_TAG }} if: ${{ always() && contains(join(needs.*.result, ','), 'success') }} needs: [release-project-event-workflow_dispatch, release-project-event-release] @@ -156,3 +160,6 @@ jobs: push: ${{ github.event_name == 'release' || github.event_name == 'workflow_dispatch' }} tags: ${{ steps.input_check.outputs.tags }} file: ./docker/docker-compose-quickstart/Dockerfile + build-args: | + BUILD_DATE=${{ env.BUILD_DATE }} + COMMIT_ID=${{ env.COMMIT_ID }} From e8810f1f3a62a82576edd12a9b7f24e4378e925f Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 13:59:19 +0530 Subject: [PATCH 5/8] Arguments update --- .github/workflows/docker-openmetadata-server.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-openmetadata-server.yml b/.github/workflows/docker-openmetadata-server.yml index 8277b32a0533..712336e03c58 100644 --- a/.github/workflows/docker-openmetadata-server.yml +++ b/.github/workflows/docker-openmetadata-server.yml @@ -116,7 +116,6 @@ jobs: - name: Set build arguments run: | echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV - echo "COMMIT_ID=${{ github.sha }}" >> $GITHUB_ENV DOCKER_RELEASE_TAG: ${{ github.event.inputs.DOCKER_RELEASE_TAG }} if: ${{ always() && contains(join(needs.*.result, ','), 'success') }} needs: [release-project-event-workflow_dispatch, release-project-event-release] @@ -162,4 +161,5 @@ jobs: file: ./docker/docker-compose-quickstart/Dockerfile build-args: | BUILD_DATE=${{ env.BUILD_DATE }} - COMMIT_ID=${{ env.COMMIT_ID }} + COMMIT_ID=${{ github.sha }} + From 8d4298cfaabfb4de6070670e2eb0292da8dd81a6 Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 15:15:33 +0530 Subject: [PATCH 6/8] Script path update --- docker/openmetadata-start.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/openmetadata-start.sh b/docker/openmetadata-start.sh index aed195bd12ec..fa5929a6d026 100644 --- a/docker/openmetadata-start.sh +++ b/docker/openmetadata-start.sh @@ -11,7 +11,6 @@ # limitations under the License. echo "Initializing OpenMetadata Server..."; -cd /openmetadata-*/ echo "Migrating the database to the latest version and the indexes in ElasticSearch..."; ./bootstrap/bootstrap_storage.sh migrate-all echo " ||||||| " From 73712d19085bc813cc0ce5872aa5c7a108022a0a Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 15:26:29 +0530 Subject: [PATCH 7/8] Arguments update --- .github/workflows/docker-openmetadata-server.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-openmetadata-server.yml b/.github/workflows/docker-openmetadata-server.yml index 712336e03c58..8d909e81e7be 100644 --- a/.github/workflows/docker-openmetadata-server.yml +++ b/.github/workflows/docker-openmetadata-server.yml @@ -161,5 +161,5 @@ jobs: file: ./docker/docker-compose-quickstart/Dockerfile build-args: | BUILD_DATE=${{ env.BUILD_DATE }} - COMMIT_ID=${{ github.sha }} + COMMIT_ID=${{ env.github.sha }} From 017d777ab9910ca86b37032babe0c9e35693baae Mon Sep 17 00:00:00 2001 From: Anuj359 Date: Tue, 18 Apr 2023 15:41:32 +0530 Subject: [PATCH 8/8] Resolving the reviewed suggestions --- .github/workflows/docker-openmetadata-server.yml | 1 - docker/development/Dockerfile | 14 +++++++------- docker/docker-compose-quickstart/Dockerfile | 3 +-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docker-openmetadata-server.yml b/.github/workflows/docker-openmetadata-server.yml index 8d909e81e7be..8dd7ced836f5 100644 --- a/.github/workflows/docker-openmetadata-server.yml +++ b/.github/workflows/docker-openmetadata-server.yml @@ -162,4 +162,3 @@ jobs: build-args: | BUILD_DATE=${{ env.BUILD_DATE }} COMMIT_ID=${{ env.github.sha }} - diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 9c03776fe07f..943cff68783d 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -9,23 +9,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Stage 1: Build stage -FROM alpine:3.15 AS builder +# Build stage +FROM alpine:3.15 AS build COPY openmetadata-dist/target/openmetadata-*.tar.gz / -RUN tar zxvf openmetadata-*.tar.gz && \ +RUN mkdir -p /opt/openmetadata && \ + tar zxvf openmetadata-*.tar.gz -C /opt/openmetadata --strip-components 1 && \ rm openmetadata-*.tar.gz -# Stage 2: Production stage +# Final stage FROM alpine:3.15 EXPOSE 8585 -RUN apk add --update bash openjdk11-jre && \ - rm -rf /var/cache/apk/* +RUN apk add --update --no-cache bash openjdk11-jre -COPY --from=builder /openmetadata-*/ /opt/openmetadata/ +COPY --from=build /opt/openmetadata /opt/openmetadata COPY docker/openmetadata-start.sh / RUN chmod 777 openmetadata-start.sh diff --git a/docker/docker-compose-quickstart/Dockerfile b/docker/docker-compose-quickstart/Dockerfile index ecca60a550d3..71a235c77b5c 100644 --- a/docker/docker-compose-quickstart/Dockerfile +++ b/docker/docker-compose-quickstart/Dockerfile @@ -34,8 +34,7 @@ LABEL org.open-metadata.commit-id=$COMMIT_ID EXPOSE 8585 8586 COPY docker/openmetadata-start.sh ./ COPY --from=build /opt/openmetadata /opt/openmetadata -RUN apk add --update bash openjdk11-jre && \ - rm -rf /var/cache/apk/* && \ +RUN apk add --update --no-cache bash openjdk11-jre && \ chmod 777 openmetadata-start.sh WORKDIR /opt/openmetadata ENTRYPOINT [ "/bin/bash" ]