From 66f6ce4d2a444f41f3c4f7b05bab666a57755bd6 Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 14:39:39 -0400 Subject: [PATCH 1/8] add buildx support --- .github/workflows/docker.yml | 25 ++++++++++++++++++------- Docker/docker-compose.yml | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 103d66e8b..1d0ebb3f2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -2,7 +2,9 @@ name: Publish Docker image on: push: - branches: [master, develop] + branches: [master, develop, docker**] + release: + types: [published, created, edited] jobs: publish: @@ -19,12 +21,13 @@ jobs: run: | REGISTRY="ghcr.io" IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" - TAGS="${IMAGE}:${{ github.sha }}" - if [[ $GITHUB_REF == refs/heads/master ]]; then - TAGS="${TAGS},${IMAGE}:latest" - fi - if [[ $GITHUB_REF == refs/heads/develop ]]; then - TAGS="${TAGS},${IMAGE}:develop" + TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest" + if [[ $(dirname ${{ github.ref }}) = "refs/heads" ]]; then + TAGS="${TAGS},${IMAGE}:$(basename ${{ github.ref.lowecase }})" + elif [[ $(dirname ${{ github.ref }}) = "refs/tags" ]]; then + RELEASE=$(basename ${{ github.ref.lowercase }}) + RELEASE=${RELEASE#"superalgos-"} + TAGS="${TAGS},${IMAGE}:${RELEASE}" fi echo ::set-output name=tags::${TAGS} - name: Login in to registry @@ -33,9 +36,17 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + - name: Available platforms + run: echo ${{ steps.buildx.outputs.platforms }} - name: Push to registry uses: docker/build-push-action@v2 with: push: true file: ./Docker/Dockerfile tags: ${{ steps.prep.outputs.tags }} + platforms: ${{ steps.buildx.outputs.platforms }} diff --git a/Docker/docker-compose.yml b/Docker/docker-compose.yml index a1f3b17bf..0574e7735 100644 --- a/Docker/docker-compose.yml +++ b/Docker/docker-compose.yml @@ -4,7 +4,7 @@ services: build: context: .. dockerfile: ./Docker/Dockerfile - image: superalgos + image: ghcr.io/superalgos/superalgos:latest command: ["minMemo"] ports: - '34248:34248' From 99df705ba210f7e5652a2f441ca021ab43b58a28 Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 14:48:02 -0400 Subject: [PATCH 2/8] fix branch/git tag detection --- .github/workflows/docker.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 1d0ebb3f2..62e41fc57 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,11 +22,13 @@ jobs: REGISTRY="ghcr.io" IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest" - if [[ $(dirname ${{ github.ref }}) = "refs/heads" ]]; then - TAGS="${TAGS},${IMAGE}:$(basename ${{ github.ref.lowecase }})" - elif [[ $(dirname ${{ github.ref }}) = "refs/tags" ]]; then - RELEASE=$(basename ${{ github.ref.lowercase }}) - RELEASE=${RELEASE#"superalgos-"} + REF="${{ github.ref.lowercase }}" + PREFIX="$(dirname $REF)" + SUFFIX="$(basename $REF)" + if [[ $PREFIX = "refs/heads" ]]; then + TAGS="${TAGS},${IMAGE}:${SUFFIX}" + elif [[ $PREFIX = "refs/tags" ]]; then + RELEASE=${SUFFIX#"superalgos-"} TAGS="${TAGS},${IMAGE}:${RELEASE}" fi echo ::set-output name=tags::${TAGS} From 5982f65852795bf8ce612fc28eace6760a633fbd Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 14:52:02 -0400 Subject: [PATCH 3/8] try ref without quotes --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 62e41fc57..040ad5b30 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,7 +22,7 @@ jobs: REGISTRY="ghcr.io" IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest" - REF="${{ github.ref.lowercase }}" + REF=${{ github.ref.lowercase }} PREFIX="$(dirname $REF)" SUFFIX="$(basename $REF)" if [[ $PREFIX = "refs/heads" ]]; then From c675ed3a921e8ac8c9bb3b63455a7cce96540216 Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 14:55:52 -0400 Subject: [PATCH 4/8] use bashism --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 040ad5b30..29e930a81 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,7 +22,7 @@ jobs: REGISTRY="ghcr.io" IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest" - REF=${{ github.ref.lowercase }} + REF=${GITHUB_REF,,} PREFIX="$(dirname $REF)" SUFFIX="$(basename $REF)" if [[ $PREFIX = "refs/heads" ]]; then From 4da3e39e4a6e5b5ea8d63c108636ffcfaaf31d68 Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 14:59:45 -0400 Subject: [PATCH 5/8] set specific platforms --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 29e930a81..6a9b115ba 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -51,4 +51,4 @@ jobs: push: true file: ./Docker/Dockerfile tags: ${{ steps.prep.outputs.tags }} - platforms: ${{ steps.buildx.outputs.platforms }} + platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 From 04edc7011e5c170037a1dba9084afc517de40f40 Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 15:07:39 -0400 Subject: [PATCH 6/8] remove armv6 --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6a9b115ba..794ffe1e1 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -51,4 +51,4 @@ jobs: push: true file: ./Docker/Dockerfile tags: ${{ steps.prep.outputs.tags }} - platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 + platforms: linux/amd64,linux/arm64,linux/arm/v7 From d525e8a10f174e38febcf9dcc8ee49975220bbfd Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 15:19:38 -0400 Subject: [PATCH 7/8] no shortcuts --- Docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 87eec8d3c..4bdec29af 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -18,7 +18,7 @@ RUN mkdir -p Data-Storage Log-Files My-Workspaces \ && useradd --no-log-init -m -g superalgos superalgos \ && chown -R superalgos:superalgos /app USER superalgos -RUN node setup +RUN node setup noShortcuts EXPOSE 34248 EXPOSE 18041 VOLUME ["/app/Data-Storage", "/app/Log-Files", "/app/My-Workspaces"] From 046d628a42a63273781e1e2ff3c35c43be5ec84f Mon Sep 17 00:00:00 2001 From: ssplatt Date: Fri, 11 Jun 2021 15:56:29 -0400 Subject: [PATCH 8/8] final cleanup --- .github/workflows/docker.yml | 2 +- Docker/docker-compose.yml | 3 +++ README.md | 17 ++++++++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 794ffe1e1..652791349 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -2,7 +2,7 @@ name: Publish Docker image on: push: - branches: [master, develop, docker**] + branches: [master, develop] release: types: [published, created, edited] diff --git a/Docker/docker-compose.yml b/Docker/docker-compose.yml index 0574e7735..0eb5bd839 100644 --- a/Docker/docker-compose.yml +++ b/Docker/docker-compose.yml @@ -13,4 +13,7 @@ services: - ../Data-Storage:/app/Data-Storage - ../Log-Files:/app/Log-Files - ../My-Workspaces:/app/My-Workspaces + environment: + - PUID: '1000' + - GUID: '1000' restart: on-failure diff --git a/README.md b/README.md index d796adf8f..0fe335819 100644 --- a/README.md +++ b/README.md @@ -373,8 +373,23 @@ When you're done just exec `docker kill superalgos` Follow the link to [install docker-compose](https://docs.docker.com/compose/install/) -Run `docker-compose -f Docker/docker-compose.yml up` +Run `docker-compose -f Docker/docker-compose.yml up`. +## Configure the Container Environment + +### Available image tags + +To avoid breaking changes, the `shasum hash` and the `release` tags are the best to use. These will generally ensure you are always running the same code. The other tags will change which code they are pointing to more frequently and without notice. + +- `latest` : the absolute latest build +- `master` : the latest master branch build +- `develop` : the latest develop branch build +- `` : a specific git commit hash +- `` : corresponds with a Github Release (git tag), i.e. `beta-10` + +### Environment variables + +`PUID` and `GUID` environment variables can be used to help avoid permissions issues in the mounted volumes between the container environment and the local OS environment. The default `PUID` and `GUID` is `1000`. You can view the current user's PUID and GUID with the `id` command. # What is Superalgos?