diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3fe9635f..bb76870f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -13,10 +13,29 @@ jobs: steps: - name: Check out the repo uses: actions/checkout@v2 - - name: Push to Docker Hub - uses: docker/build-push-action@v1 + - name: Docker meta + id: meta + uses: docker/metadata-action@v3 + with: + images: | + ${{ github.repository_owner }}/grist + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Log in to Docker Hub + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - repository: ${{ github.repository_owner }}/grist - tag_with_ref: true + - name: Push to Docker Hub + uses: docker/build-push-action@v2 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64/v8 + tags: ${{ steps.meta.outputs.tags }} diff --git a/.github/workflows/docker_latest.yml b/.github/workflows/docker_latest.yml index e84eced1..a05aeec1 100644 --- a/.github/workflows/docker_latest.yml +++ b/.github/workflows/docker_latest.yml @@ -24,14 +24,16 @@ jobs: uses: actions/checkout@v2 with: ref: latest_candidate + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - name: Prepare image but do not push it yet - uses: docker/build-push-action@v1 + uses: docker/build-push-action@v2 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - repository: ${{ github.repository_owner }}/grist - tags: latest - push: false + context: . + load: true + tags: ${{ github.repository_owner }}/grist:latest - name: Use Node.js ${{ matrix.node-version }} for testing uses: actions/setup-node@v1 with: @@ -50,13 +52,18 @@ jobs: run: yarn run build:prod - name: Run tests run: TEST_IMAGE=${{ github.repository_owner }}/grist VERBOSE=1 DEBUG=1 MOCHA_WEBDRIVER_HEADLESS=1 yarn run test:docker - - name: Push to Docker Hub - uses: docker/build-push-action@v1 + - name: Log in to Docker Hub + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - repository: ${{ github.repository_owner }}/grist - tags: latest + - name: Push to Docker Hub + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + push: true + tags: ${{ github.repository_owner }}/grist:latest - name: Update latest branch uses: ad-m/github-push-action@8407731efefc0d8f72af254c74276b7a90be36e1 with: diff --git a/Dockerfile b/Dockerfile index 16f2d25b..dbe18aae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,9 @@ ADD sandbox/requirements.txt requirements.txt ADD sandbox/requirements3.txt requirements3.txt RUN \ apt update && \ - apt install -y --no-install-recommends python2 python-pip python-setuptools && \ + apt install -y --no-install-recommends python2 python-pip python-setuptools \ + build-essential libxml2-dev libxslt-dev python-dev zlib1g-dev && \ + pip2 install wheel && \ pip2 install -r requirements.txt && \ pip3 install -r requirements3.txt