👷 building docker iamges with new methods
This commit is contained in:
parent
563875bfdf
commit
deb5b95d8f
32
.github/workflows/dashboard.yml
vendored
32
.github/workflows/dashboard.yml
vendored
@ -15,6 +15,34 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
|
|
||||||
|
- name: Extract branch name
|
||||||
|
run: |
|
||||||
|
export BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})
|
||||||
|
echo "##[set-output name=branch;]$BRANCH_NAME"
|
||||||
|
if [ $BRANCH_NAME = "main" ] || [ $BRANCH_NAME = "master" ]
|
||||||
|
then echo "##[set-output name=tag;]latest"
|
||||||
|
else echo "##[set-output name=tag;]$BRANCH_NAME"
|
||||||
|
fi
|
||||||
|
id: extract_branch
|
||||||
|
|
||||||
|
- name: xgoreleaser build
|
||||||
|
run: |
|
||||||
|
docker pull --platform linux/amd64 oryd/xgoreleaser:latest
|
||||||
|
docker run --mount type=bind,source="$(pwd)",target=/project \
|
||||||
|
--platform linux/amd64 \
|
||||||
|
-e GORELEASER_KEY=$GORELEASER_KEY \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
oryd/xgoreleaser:latest --skip-publish --snapshot --rm-dist -f .goreleaser.dashboard.yml
|
||||||
|
|
||||||
|
- name: move dist
|
||||||
|
run: |
|
||||||
|
mkdir -p target/linux/{arm,arm64,386,amd64,s390x}
|
||||||
|
mkdir target/linux/arm/v7/
|
||||||
|
mv dist/universal_linux_arm_7/dashboard target/linux/arm/v7/dashboard
|
||||||
|
mv dist/universal_linux_arm64/dashboard target/linux/arm64/dashboard
|
||||||
|
mv dist/universal_linux_amd64_v1/dashboard target/linux/amd64/dashboard
|
||||||
|
mv dist/universal_linux_s390x/dashboard target/linux/s390x/dashboard
|
||||||
|
|
||||||
- name: Log in to the GHCR
|
- name: Log in to the GHCR
|
||||||
uses: docker/login-action@master
|
uses: docker/login-action@master
|
||||||
with:
|
with:
|
||||||
@ -54,5 +82,5 @@ jobs:
|
|||||||
platforms: linux/amd64,linux/arm64,linux/arm,linux/386,linux/s390x
|
platforms: linux/amd64,linux/arm64,linux/arm,linux/386,linux/s390x
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
${{ steps.image-name.outputs.GHRC_IMAGE_NAME }}
|
${{ steps.image-name.outputs.GHRC_IMAGE_NAME }}:${{ steps.extract_branch.outputs.tag }}
|
||||||
${{ steps.image-name.outputs.ALI_IMAGE_NAME }}
|
${{ steps.image-name.outputs.ALI_IMAGE_NAME }}:${{ steps.extract_branch.outputs.tag }}
|
||||||
|
25
.goreleaser.dashboard.yml
Normal file
25
.goreleaser.dashboard.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod tidy -v
|
||||||
|
builds:
|
||||||
|
- id: universal
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=1
|
||||||
|
flags:
|
||||||
|
- -tags
|
||||||
|
- sqlite
|
||||||
|
ldflags:
|
||||||
|
- -s -w
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
goarch:
|
||||||
|
- arm
|
||||||
|
- arm64
|
||||||
|
- amd64
|
||||||
|
- s390x
|
||||||
|
goarm:
|
||||||
|
- 7
|
||||||
|
gomips:
|
||||||
|
- softfloat
|
||||||
|
main: ./cmd/dashboard
|
||||||
|
binary: dashboard
|
24
Dockerfile
24
Dockerfile
@ -1,22 +1,20 @@
|
|||||||
FROM golang:alpine AS binarybuilder
|
FROM ubuntu:latest
|
||||||
RUN apk --no-cache --no-progress add \
|
|
||||||
gcc git musl-dev
|
|
||||||
WORKDIR /dashboard
|
|
||||||
COPY . .
|
|
||||||
RUN cd cmd/dashboard && go build -o app -ldflags="-s -w"
|
|
||||||
|
|
||||||
FROM alpine:latest
|
ARG TARGETPLATFORM
|
||||||
ENV TZ="Asia/Shanghai"
|
ENV TZ="Asia/Shanghai"
|
||||||
|
|
||||||
COPY ./script/entrypoint.sh /entrypoint.sh
|
COPY ./script/entrypoint.sh /entrypoint.sh
|
||||||
RUN apk --no-cache --no-progress add \
|
|
||||||
ca-certificates \
|
RUN export DEBIAN_FRONTEND="noninteractive" &&
|
||||||
tzdata && \
|
apt update && apt install -y ca-certificates tzdata &&
|
||||||
cp "/usr/share/zoneinfo/$TZ" /etc/localtime && \
|
update-ca-certificates &&
|
||||||
echo "$TZ" > /etc/timezone && \
|
ln -fs /usr/share/zoneinfo/$TZ /etc/localtime &&
|
||||||
|
dpkg-reconfigure tzdata &&
|
||||||
chmod +x /entrypoint.sh
|
chmod +x /entrypoint.sh
|
||||||
|
|
||||||
WORKDIR /dashboard
|
WORKDIR /dashboard
|
||||||
COPY ./resource ./resource
|
COPY ./resource ./resource
|
||||||
COPY --from=binarybuilder /dashboard/cmd/dashboard/app ./app
|
COPY target/$TARGETPLATFORM/dashboard ./app
|
||||||
|
|
||||||
VOLUME ["/dashboard/data"]
|
VOLUME ["/dashboard/data"]
|
||||||
EXPOSE 80 5555
|
EXPOSE 80 5555
|
||||||
|
Loading…
Reference in New Issue
Block a user