diff --git a/.dockerignore b/.dockerignore index eda3cca..15a2b67 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,12 +2,14 @@ docs/ .cache/ .github/ bin/ +assets/ +coverage/ data/ LICENSE Makefile README.md +CONTRIBUTING.md SECURITY.md docker-compose.yml -docker-compose.override.yml -docker-compose.production.yml tmp/ +.ameba.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ecf254f..ba406f3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -31,7 +31,7 @@ jobs: - name: extract image metadata id: meta - uses: docker/metadata-action@v5.5.1 + uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # pin@v5.5.1 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | @@ -43,14 +43,14 @@ jobs: type=sha - name: set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # pin@v3 - name: set up docker buildx - uses: docker/setup-buildx-action@v3.3.0 + uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # pin@v3.3.0 - name: login to ghcr if: github.event_name != 'pull_request' - uses: docker/login-action@v3.1.0 + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # pin@v3.1.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -58,13 +58,13 @@ jobs: - name: build and push id: push - uses: docker/build-push-action@v5.3.0 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # pin@v5.3.0 with: context: . push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 + # platforms: linux/amd64,linux/arm64 # - name: generate artifact attestation # uses: actions/attest-build-provenance@v1.1.0 diff --git a/Dockerfile b/Dockerfile index 52b7898..de5c399 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,12 @@ FROM crystallang/crystal:1.12.1 as builder +LABEL org.opencontainers.image.title="runway" +LABEL org.opencontainers.image.description="clearing code for take off" +LABEL org.opencontainers.image.source="https://github.com/runwaylab/runway" +LABEL org.opencontainers.image.documentation="https://github.com/runwaylab/runway" +LABEL org.opencontainers.image.licenses="MIT" +LABEL org.opencontainers.image.authors="Grant Birkinbine" + WORKDIR /app # install build dependencies @@ -19,7 +26,7 @@ COPY shard.lock shard.lock COPY shard.yml shard.yml # bootstrap the project -RUN script/bootstrap +RUN USE_LINUX_VENDOR=true script/bootstrap # copy all source files (ensure to use a .dockerignore file for efficient copying) COPY . . @@ -32,9 +39,6 @@ FROM crystallang/crystal:1.12.1 # install runtime dependencies RUN apt-get update && apt-get install libssh2-1-dev -y -# add curl for healthchecks -# RUN apt-get update && apt-get install -y curl - # create a non-root user for security RUN useradd -m nonroot USER nonroot diff --git a/README.md b/README.md index db57491..b0d78a7 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ lint acceptance build + build