Dockerfile-netclient-multiarch 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. FROM gravitl/builder:latest as builder
  2. # add glib support daemon manager
  3. WORKDIR /app
  4. ARG version
  5. COPY . .
  6. ENV GO111MODULE=auto
  7. RUN GOOS=linux CGO_ENABLED=0 /usr/local/go/bin/go build -ldflags="-w -s -X 'main.version=${TAG}'" -o netclient-app netclient/main.go
  8. WORKDIR /root/
  9. RUN apk add --update git build-base libmnl-dev iptables
  10. RUN git clone https://git.zx2c4.com/wireguard-go && \
  11. cd wireguard-go && \
  12. make && \
  13. make install
  14. ENV WITH_WGQUICK=yes
  15. RUN git clone https://git.zx2c4.com/wireguard-tools && \
  16. cd wireguard-tools && \
  17. cd src && \
  18. make && \
  19. make install
  20. FROM alpine:3.13.6
  21. WORKDIR /root/
  22. RUN apk add --no-cache --update bash libmnl gcompat iptables openresolv iproute2
  23. COPY --from=builder /usr/bin/wireguard-go /usr/bin/wg* /usr/bin/
  24. COPY --from=builder /app/netclient-app ./netclient
  25. COPY --from=builder /app/scripts/netclient.sh .
  26. RUN chmod 0755 netclient && chmod 0755 netclient.sh
  27. ENV WG_QUICK_USERSPACE_IMPLEMENTATION=wireguard-go
  28. ENTRYPOINT ["/bin/sh", "./netclient.sh"]