diff --git a/.github/workflows/docker-mysql-setup.yml b/.github/workflows/docker-mysql-setup.yml new file mode 100644 index 0000000000000..9817425f0696f --- /dev/null +++ b/.github/workflows/docker-mysql-setup.yml @@ -0,0 +1,71 @@ +name: mysql-setup docker +on: + push: + branches: + - master + paths-ignore: + - 'docs/**' + - '**.md' + pull_request: + branches: + - master + paths: + - './docker/mysql-setup/**' + - '.github/workflows/docker-mysql-setup.yml' + release: + types: [published, edited] + +jobs: + setup: + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.tag.outputs.tag }} + publish: ${{ steps.publish.outputs.publish }} + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Compute Tag + id: tag + run: | + echo "GITHUB_REF: $GITHUB_REF" + SHORT_SHA=$(git rev-parse --short "$GITHUB_SHA") + echo "SHORT_SHA: $SHORT_SHA" + TAG=$(echo ${GITHUB_REF} | sed -e "s,refs/heads/.*$,head\,${SHORT_SHA},g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1,g') + echo "tag=$TAG" + echo "::set-output name=tag::$TAG" + - name: Check whether publishing enabled + id: publish + env: + ENABLE_PUBLISH: ${{ secrets.ORG_DOCKER_PASSWORD }} + run: | + echo "Enable publish: ${{ env.ENABLE_PUBLISH != '' }}" + echo "::set-output name=publish::${{ env.ENABLE_PUBLISH != '' }}" + push_to_registries: + name: Build and Push Docker Image to Docker Hub + runs-on: ubuntu-latest + needs: setup + steps: + - name: Check out the repo + uses: actions/checkout@v2 + - name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + # list of Docker images to use as base name for tags + images: | + acryldata/datahub-mysql-setup + # add git short SHA as Docker tag + tag-custom: ${{ needs.setup.outputs.tag }} + tag-custom-only: true + - name: Login to DockerHub + if: ${{ needs.setup.outputs.publish == 'true' }} + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.ORG_DOCKER_PASSWORD }} + - name: Build and Push image + uses: docker/build-push-action@v2 + with: + file: ./docker/mysql-setup/Dockerfile + tags: ${{ steps.docker_meta.outputs.tags }} + push: ${{ needs.setup.outputs.publish == 'true' }} diff --git a/.github/workflows/docker-postgres-setup.yml b/.github/workflows/docker-postgres-setup.yml new file mode 100644 index 0000000000000..e18001bf79680 --- /dev/null +++ b/.github/workflows/docker-postgres-setup.yml @@ -0,0 +1,71 @@ +name: postgres-setup docker +on: + push: + branches: + - master + paths-ignore: + - 'docs/**' + - '**.md' + pull_request: + branches: + - master + paths: + - './docker/postgres-setup/**' + - '.github/workflows/docker-postgres-setup.yml' + release: + types: [published, edited] + +jobs: + setup: + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.tag.outputs.tag }} + publish: ${{ steps.publish.outputs.publish }} + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Compute Tag + id: tag + run: | + echo "GITHUB_REF: $GITHUB_REF" + SHORT_SHA=$(git rev-parse --short "$GITHUB_SHA") + echo "SHORT_SHA: $SHORT_SHA" + TAG=$(echo ${GITHUB_REF} | sed -e "s,refs/heads/.*$,head\,${SHORT_SHA},g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1,g') + echo "tag=$TAG" + echo "::set-output name=tag::$TAG" + - name: Check whether publishing enabled + id: publish + env: + ENABLE_PUBLISH: ${{ secrets.ORG_DOCKER_PASSWORD }} + run: | + echo "Enable publish: ${{ env.ENABLE_PUBLISH != '' }}" + echo "::set-output name=publish::${{ env.ENABLE_PUBLISH != '' }}" + push_to_registries: + name: Build and Push Docker Image to Docker Hub + runs-on: ubuntu-latest + needs: setup + steps: + - name: Check out the repo + uses: actions/checkout@v2 + - name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + # list of Docker images to use as base name for tags + images: | + acryldata/datahub-postgres-setup + # add git short SHA as Docker tag + tag-custom: ${{ needs.setup.outputs.tag }} + tag-custom-only: true + - name: Login to DockerHub + if: ${{ needs.setup.outputs.publish == 'true' }} + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.ORG_DOCKER_PASSWORD }} + - name: Build and Push image + uses: docker/build-push-action@v2 + with: + file: ./docker/postgres-setup/Dockerfile + tags: ${{ steps.docker_meta.outputs.tags }} + push: ${{ needs.setup.outputs.publish == 'true' }} diff --git a/docker/postgres-setup/Dockerfile b/docker/postgres-setup/Dockerfile index 2c3f6432df009..d27f5acd39709 100644 --- a/docker/postgres-setup/Dockerfile +++ b/docker/postgres-setup/Dockerfile @@ -1,6 +1,8 @@ -FROM jwilder/dockerize:0.6.1 +FROM alpine:3 -RUN apk add --no-cache postgres-client +ENV DOCKERIZE_VERSION v0.6.1 +RUN apk add --no-cache postgresql-client curl tar \ + && curl -L https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz | tar -C /usr/local/bin -xzv COPY docker/postgres-setup/init.sql /init.sql COPY docker/postgres-setup/init.sh /init.sh