From 2b095bbba3e0c5472041509a3b370aefe15109a0 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 27 Oct 2021 15:29:18 +0100 Subject: [PATCH] WIP: Docker container --- .github/workflows/on-push.yml | 43 +++++++++++++++++++++++++++++++++++ .github/workflows/on-tag.yml | 43 +++++++++++++++++++++++++++++++++++ Dockerfile | 18 +++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 .github/workflows/on-push.yml create mode 100644 .github/workflows/on-tag.yml create mode 100644 Dockerfile diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml new file mode 100644 index 0000000..57903f1 --- /dev/null +++ b/.github/workflows/on-push.yml @@ -0,0 +1,43 @@ +name: Build on push + +permissions: + packages: write + +on: + push: + branches: + - main + - master + +jobs: + build: + name: Build image + runs-on: ubuntu-20.04 + + steps: + - name: Checkout project + uses: actions/checkout@v2 + + - name: Set env variables + run: | + echo "BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')" >> $GITHUB_ENV + IMAGE_NAME="${GITHUB_REPOSITORY#*/}" + echo "IMAGE_NAME=${IMAGE_NAME//docker-/}" >> $GITHUB_ENV + + - name: Login to Docker Hub + run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + id: qemu + + - name: Setup Docker buildx action + uses: docker/setup-buildx-action@v1 + id: buildx + + - name: Run Docker buildx + run: | + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --tag ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME:$BRANCH \ + --output "type=registry" ./ diff --git a/.github/workflows/on-tag.yml b/.github/workflows/on-tag.yml new file mode 100644 index 0000000..f35c595 --- /dev/null +++ b/.github/workflows/on-tag.yml @@ -0,0 +1,43 @@ +name: Build on tag + +permissions: + packages: write + +on: + push: + tags: + - v[0-9]+.[0-9]+.[0-9]+ + - v[0-9]+.[0-9]+.[0-9]+-* + +jobs: + build: + name: Build image + runs-on: ubuntu-20.04 + + steps: + - name: Checkout project + uses: actions/checkout@v2 + + - name: Set env variables + run: | + echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + IMAGE_NAME="${GITHUB_REPOSITORY#*/}" + echo "IMAGE_NAME=${IMAGE_NAME//docker-/}" >> $GITHUB_ENV + + - name: Login to Docker Hub + run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + id: qemu + + - name: Setup Docker buildx action + uses: docker/setup-buildx-action@v1 + id: buildx + + - name: Run Docker buildx + run: | + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --tag ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME:$BRANCH \ + --output "type=registry" ./ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..800b2cb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +# Go base image +FROM golang:1.17-alpine as builder + +RUN go get github.com/GeertJohan/go.rice && go get github.com/GeertJohan/go.rice/rice + +WORKDIR /app + +COPY . . + +RUN go install + +RUN rice embed-go && go build + +FROM golang:1.17-alpine + +COPY --from=builder /app/lnme /lnme + +CMD ["/lnme"]