Sign inSign up

losenmann/awg

By losenmann

•Updated 5 months ago

Image
0

2.8K

losenmann/awg repository overview

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"]

Tag summary

Content type

Image

Digest

sha256:4b623d2cb…

Size

5.9 MB

Last updated

5 months ago

docker pull losenmann/awg