diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bbb5f997..119502f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,6 +35,20 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + - + name: Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + context: git + images: | + ${{ secrets.DOCKERHUB_REPO }} + ghcr.io/${{ github.repository }} + tags: | + type=raw,value=latest,priority=100 + type=raw,value=${{ vars.MAJOR }}.${{ vars.MINOR }} + labels: | + org.opencontainers.image.title=${{ vars.NAME }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -51,54 +65,28 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - + - name: Build Docker image - id: build - run: | - #!/bin/bash - - DIRECTORY="." - PLATFORMS="linux/amd64,linux/arm64" - VERSION="${{ vars.MAJOR }}.${{ vars.MINOR }}" - echo "version=${VERSION}" >> $GITHUB_OUTPUT - BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" - TITLE="$(grep --only-matching --perl-regex "(?<=image.title\=).*" $DIRECTORY/Dockerfile | sed -e 's/ /\xc2\xa0/g')" - DESC="$(grep --only-matching --perl-regex "(?<=image.description\=).*" $DIRECTORY/Dockerfile | sed -e 's/ /\xc2\xa0/g')" - - TAGS=() - TAGS=("${{ github.repository }}:latest") - TAGS+=("${{ github.repository }}:${VERSION}") - TAGS+=("ghcr.io/${{ github.repository }}:latest") - TAGS+=("ghcr.io/${{ github.repository }}:${VERSION}") - - LABELS=() - LABELS=("org.opencontainers.image.licenses=MIT") - LABELS+=("org.opencontainers.image.title=${TITLE}") - LABELS+=("org.opencontainers.image.description=${DESC}") - LABELS+=("org.opencontainers.image.version=${VERSION}") - LABELS+=("org.opencontainers.image.created=${BUILD_DATE}") - LABELS+=("org.opencontainers.image.revision=${GITHUB_RUN_ID}") - LABELS+=("org.opencontainers.image.url=https://hub.docker.com/r/${{ github.repository }}") - LABELS+=("org.opencontainers.image.source=https://github.com/${{ github.repository }}") - - docker buildx build --progress=plain \ - --platform "${PLATFORMS}" \ - --output "type=image,push=true" \ - --build-arg "VERSION_ARG=${VERSION}" \ - --build-arg "VCS_REF=${GITHUB_SHA::8}" \ - $(printf '%s' "${LABELS[@]/#/ --label }" ) \ - $(printf '%s' "${LABELS[@]/#/ --annotation }" ) \ - $(printf '%s' "${TAGS[@]/#/ --tag }" ) "${DIRECTORY}" - - rm -f ${HOME}/.docker/config.json + uses: docker/build-push-action@v5 + with: + context: . + push: true + provenance: false + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + annotations: ${{ steps.meta.outputs.labels }} + build-args: | + VCS_REF=${GITHUB_SHA::8} + VERSION_ARG=${{ steps.meta.outputs.version }} - name: Create a release uses: action-pack/github-release@v2 env: GITHUB_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }} with: - tag: "v${{ steps.build.outputs.version }}" - title: "v${{ steps.build.outputs.version }}" + tag: "v${{ steps.meta.outputs.version }}" + title: "v${{ steps.meta.outputs.version }}" - name: Increment version variable uses: action-pack/bump@v2 diff --git a/Dockerfile b/Dockerfile index 3773f0cb..b9b2917a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,10 +50,7 @@ ENV DISK_SIZE "16G" ENV RAM_SIZE "512M" ARG VERSION_ARG="0.0" -ENV VERSION=$VERSION_ARG - -LABEL org.opencontainers.image.title="Virtual DSM" -LABEL org.opencontainers.image.description="Virtual DSM in a docker container" +RUN echo "$VERSION_ARG" > /run/version HEALTHCHECK --interval=60s --start-period=45s --retries=2 CMD /run/check.sh diff --git a/docker-compose.yml b/docker-compose.yml index 22415501..2345b4b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: RAM_SIZE: "512M" devices: - /dev/kvm + - /dev/net/tun - /dev/vhost-net device_cgroup_rules: - 'c *:* rwm' diff --git a/readme.md b/readme.md index afd87775..12f702b8 100644 --- a/readme.md +++ b/readme.md @@ -34,7 +34,6 @@ services: DISK_SIZE: "16G" devices: - /dev/kvm - - /dev/vhost-net cap_add: - NET_ADMIN ports: diff --git a/src/entry.sh b/src/entry.sh index a76d72b7..ae95a945 100755 --- a/src/entry.sh +++ b/src/entry.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -Eeuo pipefail -echo "❯ Starting Virtual DSM for Docker v${VERSION}..." +echo "❯ Starting Virtual DSM for Docker v$(