diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index fec9999cd..515a85a41 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -52,9 +52,11 @@ jobs: username: ${{ secrets.GH_USERNAME }} password: ${{ secrets.GH_TOKEN }} - run: | - docker build --build-arg "VERSION=${{ env.BUILD_VERSION }}" \ - -t ghcr.io/cortezaproject/corteza-server:${{ env.BUILD_VERSION_SHA }} \ - -t ghcr.io/cortezaproject/corteza-server:${{ env.BUILD_VERSION_REF }} . + docker build --build-arg "BUILD_VERSION=${{ env.BUILD_VERSION_REF }}" \ + --tag ghcr.io/cortezaproject/corteza-server:${{ env.BUILD_VERSION_SHA }} \ + --tag ghcr.io/cortezaproject/corteza-server:${{ env.BUILD_VERSION_REF }} \ + --file Dockerfile.snapshot \ + . if: ${{ !env.ACT }} - run: docker push ghcr.io/cortezaproject/corteza-server:${{ env.BUILD_VERSION_SHA }} if: ${{ !env.ACT }} diff --git a/Dockerfile.snapshot b/Dockerfile.snapshot new file mode 100644 index 000000000..6979a58e6 --- /dev/null +++ b/Dockerfile.snapshot @@ -0,0 +1,42 @@ +# build stage +FROM golang:1.16-buster as build-stage + +ENV BUILD_OS=linux +ENV BUILD_ARCH=amd64 +ENV BUILD_VERSION=latest + +WORKDIR /corteza + +COPY . ./ + +RUN make release-clean release + + +# deploy stage +FROM ubuntu:20.04 + +RUN apt-get -y update \ + && apt-get -y install \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +ENV STORAGE_PATH "/data" +ENV CORREDOR_ADDR "corredor:80" +ENV HTTP_ADDR "0.0.0.0:80" +ENV HTTP_WEBAPP_ENABLED "false" +ENV PATH "/corteza/bin:${PATH}" + +WORKDIR /corteza + +VOLUME /data + +COPY --from=build-stage /corteza/build/pkg/corteza-server ./ + +HEALTHCHECK --interval=30s --start-period=1m --timeout=30s --retries=3 \ + CMD curl --silent --fail --fail-early http://127.0.0.1:80/healthcheck || exit 1 + +EXPOSE 80 + +ENTRYPOINT ["./bin/corteza-server"] + +CMD ["serve-api"]