Dockerfile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. FROM alpine AS builder
  2. RUN mkdir /usr/local/src && apk add binutils --no-cache\
  3. linux-headers \
  4. build-base \
  5. readline-dev \
  6. openssl-dev \
  7. ncurses-dev \
  8. git \
  9. cmake \
  10. zlib-dev \
  11. libsodium-dev \
  12. gnu-libiconv
  13. ENV LD_PRELOAD=/usr/lib/preloadable_libiconv.so
  14. ADD ./ /usr/local/src/SoftEtherVPN/
  15. WORKDIR /usr/local/src
  16. ENV USE_MUSL=YES
  17. ENV CMAKE_FLAGS="-DSE_PIDDIR=/run/softether -DSE_LOGDIR=/var/log/softether -DSE_DBDIR=/var/lib/softether"
  18. RUN cd SoftEtherVPN &&\
  19. ./configure &&\
  20. make -j $(getconf _NPROCESSORS_ONLN) -C build
  21. FROM alpine AS base
  22. RUN apk add --no-cache readline \
  23. openssl \
  24. libsodium \
  25. gnu-libiconv \
  26. iptables
  27. ENV LD_PRELOAD=/usr/lib/preloadable_libiconv.so
  28. WORKDIR /usr/local/bin
  29. VOLUME /var/log/softether
  30. VOLUME /var/lib/softether
  31. VOLUME /run/softether
  32. COPY --from=builder /usr/local/src/SoftEtherVPN/build/vpncmd /usr/local/src/SoftEtherVPN/build/hamcore.se2 ./
  33. COPY --from=builder /usr/local/src/SoftEtherVPN/build/libcedar.so /usr/local/src/SoftEtherVPN/build/libmayaqua.so /usr/local/lib/
  34. FROM base AS vpnserver
  35. COPY --from=builder /usr/local/src/SoftEtherVPN/build/vpnserver ./
  36. RUN ./vpnserver --help
  37. EXPOSE 443/tcp 992/tcp 1194/tcp 1194/udp 5555/tcp 500/udp 4500/udp
  38. CMD ["/usr/local/bin/vpnserver", "execsvc"]
  39. FROM base AS vpnclient
  40. COPY --from=builder /usr/local/src/SoftEtherVPN/build/vpnclient ./
  41. RUN ./vpnclient --help
  42. CMD ["/usr/local/bin/vpnclient", "execsvc"]
  43. FROM base AS vpnbridge
  44. COPY --from=builder /usr/local/src/SoftEtherVPN/build/vpnbridge ./
  45. RUN ./vpnbridge --help
  46. CMD ["/usr/local/bin/vpnbridge", "execsvc"]