ARG GOLANG_VERSION=1.24 ARG ALPINE_VERSION=3.21 # BUILD IMAGE FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} AS builder WORKDIR /go RUN apk add --no-cache git make bash build-base linux-headers; \ git clone --depth=1 https://github.com/amnezia-vpn/amneziawg-tools.git; \ git clone --depth=1 https://github.com/amnezia-vpn/amneziawg-go.git; \ cd /go/amneziawg-tools/src && make; \ cd /go/amneziawg-go && make; \ mkdir -p /tmp/build/usr/bin/; \ mv /go/amneziawg-go/amneziawg-go /tmp/build/usr/bin/amneziawg-go; \ mv /go/amneziawg-tools/src/wg /tmp/build/usr/bin/awg; \ mv /go/amneziawg-tools/src/wg-quick/linux.bash /tmp/build/usr/bin/awg-quick # FINAL IMAGE FROM alpine:${ALPINE_VERSION} #USER 1000:1000 COPY --from=builder /tmp/build/ / #COPY linux-6.12.tar.gz linux-6.12.tar.gz #RUN tar xf linux-6.12.tar.gz; \ # ln -s linux-6.12.38 kernel #RUN apk add --no-cache git make bash build-base linux-headers; \ # git clone --depth=1 https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git; \ # cd amneziawg-linux-kernel-module/src && make; \ # make install RUN apk add --no-cache iproute2 iptables bash openresolv dpkg dumb-init iptables-legacy; \ chmod +x /usr/bin/awg /usr/bin/awg-quick /usr/bin/amneziawg-go; \ ln -s /usr/bin/awg /usr/bin/wg; \ ln -s /usr/bin/awg-quick /usr/bin/wg-quick; \ mkdir /config; \ mkdir -p /etc/amnezia/amneziawg; \ # IPv4 rm /usr/sbin/iptables /usr/sbin/iptables-save /usr/sbin/iptables-restore; \ ln -s /usr/sbin/iptables-legacy /usr/sbin/iptables; \ ln -s /usr/sbin/iptables-legacy-save /usr/sbin/iptables-save; \ ln -s /usr/sbin/iptables-legacy-restore /usr/sbin/iptables-restore; \ # IPv6 rm /usr/sbin/ip6tables /usr/sbin/ip6tables-save /usr/sbin/ip6tables-restore; \ ln -s /usr/sbin/ip6tables-legacy /usr/sbin/ip6tables; \ ln -s /usr/sbin/ip6tables-legacy-save /usr/sbin/ip6tables-save; \ ln -s /usr/sbin/ip6tables-legacy-restore /usr/sbin/ip6tables-restore COPY --chmod=775 init.sh init.sh HEALTHCHECK --interval=1m --timeout=5s --retries=3 CMD /usr/bin/timeout 5s /bin/sh -c \"awg show | grep interface || exit 1\" ENTRYPOINT ["/usr/bin/dumb-init", "/init.sh"]