Build
docker buildx build -f Dockerfile --platform linux/amd64,linux/arm/v7,linux/arm64/v8,linux/riscv64 -t losenmann/awg:0.2.17 -t losenmann/awg:latest --build-arg "AWG_VERSION=0.2.17" --build-arg "AWG_TOOLS_VERSION=1.0.20260223" . --push
Dockerfile
FROM --platform=$BUILDPLATFORM golang:1.25.1-alpine3.22 AS builder-awg
ARG AWG_VERSION
ARG TARGETOS
ARG TARGETARCH
ENV CGO_ENABLED=0
WORKDIR /tmp/src
ADD https://github.com/amnezia-vpn/amneziawg-go.git${AWG_VERSION:+#v}${AWG_VERSION} .
RUN go mod download
RUN go mod verify
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '-s -w -extldflags "-fno-PIC -static"' -v
WORKDIR ../out-stage
RUN install -m 755 ../src/amneziawg-go -D ./usr/bin/amneziawg-go
FROM alpine:3.23.4 AS builder-awg-tools
ARG AWG_TOOLS_VERSION
WORKDIR /tmp/src
ADD https://github.com/amnezia-vpn/amneziawg-tools.git${AWG_TOOLS_VERSION:+#v}${AWG_TOOLS_VERSION} .
# Patch https://lists.zx2c4.com/pipermail/wireguard/2023-February/007936.html
RUN sed -i '/net.ipv4.conf.all.src_valid_mark/s/&&/\&\& [[ $(sysctl -n net.ipv4.conf.all.src_valid_mark) != 1 ]] \&\& /' ./src/wg-quick/linux.bash
RUN apk add --no-cache \
bash \
make \
gcc \
libc-dev \
linux-headers
RUN make -j$(nproc) -C ./src
WORKDIR ../out-stage
RUN install -m 755 ../src/src/wg -D ./usr/bin/awg \
&& install -m 755 ../src/src/wg-quick/linux.bash -D ./usr/bin/awg-quick \
&& ln -s ./usr/bin/awg ./usr/bin/wg \
&& ln -s ./usr/bin/awg-quick ./usr/bin/wg-quick
FROM alpine:3.23.4 AS app
RUN apk add --no-cache \
bash
COPY --from=builder-awg /tmp/out-stage /
COPY --from=builder-awg-tools /tmp/out-stage /
WORKDIR /etc/amnezia/amneziawg
ENTRYPOINT ["awg-quick"]
CMD ["up", "wg0"]
Content type
Image
Digest
sha256:4b623d2cb…
Size
5.9 MB
Last updated
5 months ago
docker pull losenmann/awg