Skip to content

Commit

Permalink
Update docker image build file (fatedier#2892)
Browse files Browse the repository at this point in the history
* update docker image building
  • Loading branch information
Becods authored Apr 28, 2022
1 parent 6c65858 commit 44eb513
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 86 deletions.
107 changes: 37 additions & 70 deletions .github/workflows/build-and-push-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,43 +10,9 @@ on:
required: true
default: 'test'
jobs:
binary:
name: Build Golang project
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: 1.18

- run: |
# https://github.com/actions/setup-go/issues/107
cp -f `which go` /usr/bin/go
- run: go version

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Build
run: make build

- name: Archive artifacts for frpc
uses: actions/upload-artifact@v1
with:
name: frpc
path: bin/frpc

- name: Archive artifacts for frps
uses: actions/upload-artifact@v1
with:
name: frps
path: bin/frps

image:
name: Build Image from Dockerfile and binaries
runs-on: ubuntu-latest
needs: binary
steps:
# environment
- name: Checkout
Expand All @@ -60,19 +26,6 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

# download binaries of frpc and frps
- name: Download binary of frpc
uses: actions/download-artifact@v2
with:
name: frpc
path: bin/frpc

- name: Download binary of frps
uses: actions/download-artifact@v2
with:
name: frps
path: bin/frps

# get image tag name
- name: Get Image Tag Name
run: |
Expand All @@ -81,6 +34,18 @@ jobs:
else
echo "TAG_NAME=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
fi
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Login to the GPR
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# prepare image tags
- name: Prepare Image Tags
Expand All @@ -92,26 +57,28 @@ jobs:
echo "TAG_FRPC_GPR=ghcr.io/fatedier/frpc:${{ env.TAG_NAME }}" >> $GITHUB_ENV
echo "TAG_FRPS_GPR=ghcr.io/fatedier/frps:${{ env.TAG_NAME }}" >> $GITHUB_ENV
# build images
- name: Build Images
run: |
# for Docker hub
docker build --file ${{ env.DOCKERFILE_FRPC_PATH }} --tag ${{ env.TAG_FRPC }} .
docker build --file ${{ env.DOCKERFILE_FRPS_PATH }} --tag ${{ env.TAG_FRPS }} .
# for GPR
docker build --file ${{ env.DOCKERFILE_FRPC_PATH }} --tag ${{ env.TAG_FRPC_GPR }} .
docker build --file ${{ env.DOCKERFILE_FRPS_PATH }} --tag ${{ env.TAG_FRPS_GPR }} .
# push to dockerhub
- name: Publish to Dockerhub
run: |
echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login --username ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
docker push ${{ env.TAG_FRPC }}
docker push ${{ env.TAG_FRPS }}
# push to gpr
- name: Publish to GPR
run: |
echo ${{ secrets.GPR_TOKEN }} | docker login ghcr.io --username ${{ github.repository_owner }} --password-stdin
docker push ${{ env.TAG_FRPC_GPR }}
docker push ${{ env.TAG_FRPS_GPR }}
- name: Build and push frpc
uses: docker/build-push-action@v2
with:
context: .
file: ./dockerfiles/Dockerfile-for-frpc
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
push: ${{ github.event_name != 'pull_request' }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
tags: |
${{ env.TAG_FRPC }}
${{ env.TAG_FRPC_GPR }}
- name: Build and push frps
uses: docker/build-push-action@v2
with:
context: .
file: ./dockerfiles/Dockerfile-for-frps
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
push: ${{ github.event_name != 'pull_request' }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
tags: |
${{ env.TAG_FRPS }}
${{ env.TAG_FRPS_GPR }}
19 changes: 11 additions & 8 deletions dockerfiles/Dockerfile-for-frpc
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
FROM alpine:3 AS temp
FROM golang:1.18-alpine3.15 AS building

COPY bin/frpc /tmp
COPY . /building
WORKDIR /building

RUN chmod -R 777 /tmp/frpc
RUN apk --no-cache add \
git \
&& export GO111MODULE=on \
&& env CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o ./bin/frpc ./cmd/frpc

FROM alpine:3.15
LABEL maintainer="[email protected]"

FROM alpine:3

WORKDIR /app

COPY --from=temp /tmp/frpc /usr/bin
COPY --from=building /building/bin/frpc /usr/bin/frpc

ENTRYPOINT ["/usr/bin/frpc"]
CMD ["-h"]
19 changes: 11 additions & 8 deletions dockerfiles/Dockerfile-for-frps
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
FROM alpine:3 AS temp
FROM golang:1.18-alpine3.15 AS building

COPY bin/frps /tmp
COPY . /building
WORKDIR /building

RUN chmod -R 777 /tmp/frps
RUN apk --no-cache add \
git \
&& export GO111MODULE=on \
&& env CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o ./bin/frps ./cmd/frps

FROM alpine:3.15
LABEL maintainer="[email protected]"

FROM alpine:3

WORKDIR /app

COPY --from=temp /tmp/frps /usr/bin
COPY --from=building /building/bin/frps /usr/bin/frps

ENTRYPOINT ["/usr/bin/frps"]
CMD ["-h"]

0 comments on commit 44eb513

Please sign in to comment.