diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..71f5e2d --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,60 @@ +name: Publish Docker image on release + +on: + release: + types: [ published ] + +jobs: + push_to_registries: + name: Push Docker image to multiple registries + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to Quay.io + uses: docker/login-action@v2 + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_ROBOT_TOKEN }} + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: | + thetipo01/messagecounter + ghcr.io/${{ github.repository }} + quay.io/thetipo01/messagecounter + + - name: Build and push Docker images + uses: docker/build-push-action@v4 + with: + context: . + platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0a7d4f5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM --platform=$BUILDPLATFORM golang:alpine AS build + +RUN apk add --no-cache git + +RUN git clone https://github.com/TheTipo01/messageCounter /messageCounter +WORKDIR /messageCounter +ARG TARGETOS +ARG TARGETARCH +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_ENABLED=0 go mod download +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o messageCounter + +FROM alpine + +COPY --from=build /messageCounter/messageCounter /usr/bin/ +COPY --from=build /messageCounter/fonts /fonts + +CMD ["messageCounter"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..be4ac4d --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,9 @@ +version: '3.9' +services: + bot: + image: thetipo01/messagecounter + restart: always + volumes: + - ${PWD}/config.yml:/config.yml + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro