-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
64 lines (48 loc) · 1.7 KB
/
Copy pathDockerfile
File metadata and controls
64 lines (48 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Builder Image
# ---------------------------------------------------
FROM golang:1.25-alpine AS go-builder
ARG VERSION=dev
ARG COMMIT=none
ENV ZIG_VERSION="0.15.2"
WORKDIR /usr/src/app
COPY . ./
RUN apk upgrade --no-cache --update \
&& apk add --no-cache --update \
bash \
curl \
&& mkdir -p /usr/local/zig \
&& curl -SL -o /tmp/zig.tar.xz \
https://oss.dimaskiddo.my.id/public.dimaskiddo.my.id/zig/${ZIG_VERSION}/zig-x86_64-linux-${ZIG_VERSION}.tar.xz \
&& tar -xf /tmp/zig.tar.xz -C /usr/local/zig --no-same-owner --strip-component 1 \
&& chmod 755 /usr/local/zig/zig \
&& rm -f /tmp/zig.tar.xz
ENV PATH=${PATH}:/usr/local/zig
RUN go mod download \
&& ZIG_TARGET_LIBC=musl \
CC="/usr/src/app/hack/zcc.sh" \
CXX="/usr/src/app/hack/zcxx.sh" \
CGO_ENABLED=1 \
GOOS=linux \
go build \
-ldflags="-s -w -linkmode external -X main.version=${VERSION} -X main.commit=${COMMIT}" \
-trimpath -a -o main ./cmd/lmd-ng
# Final Image
# ---------------------------------------------------
FROM dimaskiddo/alpine:base-glibc
MAINTAINER Dimas Restu Hidayanto <drh.dimasrestu@gmail.com>
ARG SERVICE_NAME="lmd-ng"
ENV PATH $PATH:/usr/local/${SERVICE_NAME}
WORKDIR /usr/local/${SERVICE_NAME}
RUN apk --no-cache --update upgrade \
&& mkdir -p \
logs \
certs \
sigs \
clamav \
quarantine \
&& mkdir -p /data
COPY --from=go-builder /usr/src/app/main ./lmd-ng
COPY --from=go-builder /usr/src/app/config.yaml.example ./config.yaml
RUN sed -i -e '/- "\/var\/www"/d' ./config.yaml \
&& sed -i -e 's/"\/home"/"\/data"/' ./config.yaml
CMD ["lmd-ng", "daemon", "--config", "./config.yaml"]