diff --git a/.circleci/config.yml b/.circleci/config.yml index 1387b51..75a5c1d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,59 +12,18 @@ jobs: sudo ./test-install.sh # Define in CircleCi Project Variables: $DOCKERHUB_REPO, $DOCKERHUB_USER, $DOCKERHUB_PASS # Publish jobs require those variables - amd64: - machine: - enabled: true + docker: + docker: + - image: cimg/base:stable steps: - - checkout + - setup_remote_docker + - checkout - run: command: | - cd docker-compose-generator - sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS - sudo docker build --pull -t $DOCKERHUB_REPO:latest-amd64 -f linuxamd64.Dockerfile . - sudo docker push $DOCKERHUB_REPO:latest-amd64 - - arm32v7: - machine: - enabled: true - steps: - - checkout - - run: - command: | - sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset - # - cd docker-compose-generator - sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS - sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm32v7 -f linuxarm32v7.Dockerfile . - sudo docker push $DOCKERHUB_REPO:latest-arm32v7 - arm64v8: - machine: - enabled: true - steps: - - checkout - - run: - command: | - sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset - # - cd docker-compose-generator - sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS - sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm64v8 -f linuxarm64v8.Dockerfile . - sudo docker push $DOCKERHUB_REPO:latest-arm64v8 - multiarch: - machine: - enabled: true - image: ubuntu-2004:202201-02 - steps: - - run: - command: | - # - sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS - # - sudo docker manifest create --amend $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 $DOCKERHUB_REPO:latest-arm32v7 $DOCKERHUB_REPO:latest-arm64v8 - sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 --os linux --arch amd64 - sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm32v7 --os linux --arch arm --variant v7 - sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm64v8 --os linux --arch arm64 --variant v8 - sudo docker manifest push $DOCKERHUB_REPO:latest -p + docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS + docker buildx create --use + DOCKER_BUILDX_OPTS="--platform linux/amd64,linux/arm64,linux/arm/v7 --push" + docker buildx build $DOCKER_BUILDX_OPTS -t $DOCKERHUB_REPO:latest . workflows: version: 2 @@ -74,23 +33,7 @@ workflows: filters: branches: only: master - - amd64: - filters: - branches: - only: dcg-latest - - arm32v7: - filters: - branches: - only: dcg-latest - - arm64v8: - filters: - branches: - only: dcg-latest - - multiarch: - requires: - - amd64 - - arm32v7 - - arm64v8 + - docker: filters: branches: only: dcg-latest diff --git a/docker-compose-generator/linuxamd64.Dockerfile b/docker-compose-generator/Dockerfile similarity index 74% rename from docker-compose-generator/linuxamd64.Dockerfile rename to docker-compose-generator/Dockerfile index 9fc4ea3..8fb7579 100644 --- a/docker-compose-generator/linuxamd64.Dockerfile +++ b/docker-compose-generator/Dockerfile @@ -1,5 +1,5 @@ # -FROM mcr.microsoft.com/dotnet/sdk:8.0.100-bookworm-slim AS builder +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0.101-bookworm-slim AS builder WORKDIR /source COPY src/docker-compose-generator.csproj docker-compose-generator.csproj # Cache some dependencies @@ -8,7 +8,7 @@ COPY src/. . RUN dotnet publish --output /app/ --configuration Release # -FROM mcr.microsoft.com/dotnet/runtime:8.0.0-bookworm-slim +FROM mcr.microsoft.com/dotnet/runtime:8.0.1-bookworm-slim LABEL org.btcpayserver.image=docker-compose-generator WORKDIR /datadir WORKDIR /app diff --git a/docker-compose-generator/linuxarm32v7.Dockerfile b/docker-compose-generator/linuxarm32v7.Dockerfile deleted file mode 100644 index 924bdda..0000000 --- a/docker-compose-generator/linuxarm32v7.Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# This is a manifest image, will pull the image with the same arch as the builder machine -FROM mcr.microsoft.com/dotnet/sdk:8.0.100-bookworm-slim AS builder -WORKDIR /source -COPY src/docker-compose-generator.csproj docker-compose-generator.csproj -# Cache some dependencies -RUN dotnet restore -COPY src/. . -RUN dotnet publish --output /app/ --configuration Release - -# Force the builder machine to take make an arm runtime image. This is fine as long as the builder does not run any program -FROM mcr.microsoft.com/dotnet/runtime:8.0.0-bookworm-slim-arm32v7 -LABEL org.btcpayserver.image=docker-compose-generator -WORKDIR /datadir - -WORKDIR /app -ENV APP_DATADIR=/datadir -VOLUME /datadir - -ENV INSIDE_CONTAINER=1 - -COPY --from=builder "/app" . - -ENTRYPOINT ["dotnet", "docker-compose-generator.dll"] diff --git a/docker-compose-generator/linuxarm64v8.Dockerfile b/docker-compose-generator/linuxarm64v8.Dockerfile deleted file mode 100644 index 2d56ac6..0000000 --- a/docker-compose-generator/linuxarm64v8.Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# This is a manifest image, will pull the image with the same arch as the builder machine -FROM mcr.microsoft.com/dotnet/sdk:8.0.100-bookworm-slim AS builder -WORKDIR /source -COPY src/docker-compose-generator.csproj docker-compose-generator.csproj -# Cache some dependencies -RUN dotnet restore -COPY src/. . -RUN dotnet publish --output /app/ --configuration Release - -# Force the builder machine to take make an arm runtime image. This is fine as long as the builder does not run any program -FROM mcr.microsoft.com/dotnet/runtime:8.0.0-bookworm-slim-arm64v8 -LABEL org.btcpayserver.image=docker-compose-generator -WORKDIR /datadir - -WORKDIR /app -ENV APP_DATADIR=/datadir -VOLUME /datadir - -ENV INSIDE_CONTAINER=1 - -COPY --from=builder "/app" . - -ENTRYPOINT ["dotnet", "docker-compose-generator.dll"]