[add] docker publish
Some checks reported errors
continuous-integration/drone/push Build was killed

This commit is contained in:
Evan Reichard 2023-10-24 07:39:37 -04:00
parent b8aef52913
commit 890ce9a7fe
4 changed files with 53 additions and 12 deletions

View File

@ -3,15 +3,13 @@ type: kubernetes
name: default name: default
steps: steps:
- name: generate_tags # Unit Tests
image: node
commands:
- echo -n "${DRONE_BRANCH}-$(date +'%Y%m%d%H%M%S')-${DRONE_COMMIT:0:10}, latest" > .tags
- name: unit test - name: unit test
image: golang image: golang
commands: commands:
- make tests_unit - make tests_unit
# Integration Tests (Every Month)
- name: integration test - name: integration test
image: golang image: golang
commands: commands:
@ -21,3 +19,17 @@ steps:
- cron - cron
cron: cron:
- integration-test - integration-test
# Publish Dev Docker Image
- name: publish_docker
image: plugins/docker
settings:
repo: gitea.va.reichard.io/evan/bookmanager
registry: gitea.va.reichard.io
dockerfile: Dockerfile-amd64
tags:
- dev
username:
from_secret: docker_username
password:
from_secret: docker_password

View File

@ -3,7 +3,7 @@ FROM alpine as certs
RUN apk update && apk add ca-certificates RUN apk update && apk add ca-certificates
# Build Image # Build Image
FROM --platform=$BUILDPLATFORM golang:1.20 AS build FROM golang:1.20 AS build
# Install Dependencies # Install Dependencies
RUN apt-get update -y RUN apt-get update -y
@ -13,13 +13,8 @@ RUN apt install -y gcc-x86-64-linux-gnu
WORKDIR /src WORKDIR /src
RUN mkdir -p /opt/bookmanager RUN mkdir -p /opt/bookmanager
# Cache Dependencies & Compile # Compile
ARG TARGETOS RUN go build -o /opt/bookmanager/server; \
ARG TARGETARCH
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /opt/bookmanager/server; \
cp -a ./templates /opt/bookmanager/templates; \ cp -a ./templates /opt/bookmanager/templates; \
cp -a ./assets /opt/bookmanager/assets; cp -a ./assets /opt/bookmanager/assets;

32
Dockerfile-BuildKit Normal file
View File

@ -0,0 +1,32 @@
# Certificate Store
FROM alpine as certs
RUN apk update && apk add ca-certificates
# Build Image
FROM --platform=$BUILDPLATFORM golang:1.20 AS build
# Install Dependencies
RUN apt-get update -y
RUN apt install -y gcc-x86-64-linux-gnu
# Create Package Directory
WORKDIR /src
RUN mkdir -p /opt/bookmanager
# Cache Dependencies & Compile
ARG TARGETOS
ARG TARGETARCH
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /opt/bookmanager/server; \
cp -a ./templates /opt/bookmanager/templates; \
cp -a ./assets /opt/bookmanager/assets;
# Create Image
FROM busybox:1.36
COPY --from=certs /etc/ssl/certs /etc/ssl/certs
COPY --from=build /opt/bookmanager /opt/bookmanager
WORKDIR /opt/bookmanager
EXPOSE 8585
ENTRYPOINT ["/opt/bookmanager/server", "serve"]

View File

@ -17,6 +17,7 @@ docker_build_release_dev:
docker buildx build \ docker buildx build \
--platform linux/amd64,linux/arm64 \ --platform linux/amd64,linux/arm64 \
-t gitea.va.reichard.io/evan/bookmanager:dev \ -t gitea.va.reichard.io/evan/bookmanager:dev \
-f Dockerfile-BuildKit \
--push . --push .
docker_build_release_latest: docker_build_release_latest:
@ -24,6 +25,7 @@ docker_build_release_latest:
--platform linux/amd64,linux/arm64 \ --platform linux/amd64,linux/arm64 \
-t gitea.va.reichard.io/evan/bookmanager:latest \ -t gitea.va.reichard.io/evan/bookmanager:latest \
-t gitea.va.reichard.io/evan/bookmanager:`git describe --tags` \ -t gitea.va.reichard.io/evan/bookmanager:`git describe --tags` \
-f Dockerfile-BuildKit \
--push . --push .
tests_integration: tests_integration: