mirror of
https://github.com/3proxy/3proxy.git
synced 2026-08-04 06:37:00 +00:00
Some checks are pending
C/C++ CI Linux / ubuntu-24.04-arm (push) Waiting to run
C/C++ CI Linux / ubuntu-latest (push) Waiting to run
C/C++ CI MacOS / macos-15 (push) Waiting to run
C/C++ CI Windows / windows-2022 (push) Waiting to run
C/C++ CI cmake / macos-15 (push) Waiting to run
C/C++ CI cmake / ubuntu-24.04-arm (push) Waiting to run
C/C++ CI cmake / ubuntu-latest (push) Waiting to run
C/C++ CI cmake / windows-2022 (push) Waiting to run
C/C++ CI cmake / ubuntu-latest (wolfSSL) (push) Waiting to run
67 lines
2.8 KiB
Text
67 lines
2.8 KiB
Text
# 3proxy.busybox is fully functional 3proxy build based on busybox:musl
|
|
# built against wolfSSL and PCRE2.
|
|
#
|
|
# Examples are for podman, for docker change 'podman' to 'docker'
|
|
#
|
|
#to build:
|
|
# podman build -f Dockerfile.busybox -t 3proxy.busybox .
|
|
#to run:
|
|
#
|
|
# echo nserver 8.8.8.8 >/path/to/local/config/directory/3proxy.cfg
|
|
# echo proxy -p3129 >>/path/to/local/config/directory/3proxy.cfg
|
|
# podman run --read-only -p 3129:3129 -v /path/to/local/config/directory:/etc/3proxy --name 3proxy.busybox 3proxy.busybox
|
|
#
|
|
# use "log" without pathname in config to log to stdout.
|
|
# plugins are located in /usr/local/3proxy/libexec (/libexec for chroot config)
|
|
# symlinked as /lib and /lib64 in both root and chroot configurations, so no need
|
|
# to specify full path to plugin.
|
|
#
|
|
# Since 0.9.6 image is distroless, no reason to use chroot, chroot
|
|
# configuration is supported for compatibility only.
|
|
|
|
|
|
FROM docker.io/alpine:latest AS wolfssl
|
|
RUN apk add --no-cache build-base curl autoconf automake libtool linux-headers
|
|
RUN TAG=$(curl -s https://api.github.com/repos/wolfSSL/wolfssl/releases/latest \
|
|
| sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p') && \
|
|
echo "wolfssl tag: $TAG" && \
|
|
curl -sL https://api.github.com/repos/wolfSSL/wolfssl/tarball/$TAG -o /tmp/w.tar.gz && \
|
|
mkdir /src && tar -xzf /tmp/w.tar.gz -C /src --strip-components=1 && \
|
|
cd /src && \
|
|
autoreconf -i && \
|
|
./configure --enable-opensslextra --enable-opensslall --enable-certgen \
|
|
--enable-tls13 --enable-sni --enable-session-ticket \
|
|
--enable-static --disable-shared --prefix=/usr/local && \
|
|
make -j$(nproc) && make install
|
|
|
|
FROM docker.io/alpine:latest AS buildenv
|
|
RUN apk add --no-cache gcc make musl-dev pcre2-dev
|
|
COPY --from=wolfssl /usr/local /usr/local
|
|
COPY . 3proxy
|
|
RUN cd 3proxy && mkdir -p bin &&\
|
|
make -f Makefile.Linux LIBSTATIC=true PAM_CHECK=false WOLFSSL_CHECK=true \
|
|
EXTRA_LDFLAGS="-L/usr/local/lib" &&\
|
|
strip bin/3proxy &&\
|
|
strip bin/*so &&\
|
|
mkdir /dist &&\
|
|
mkdir /dist/etc &&\
|
|
mkdir /dist/etc/3proxy &&\
|
|
mkdir /dist/bin &&\
|
|
mkdir /dist/usr &&\
|
|
mkdir /dist/usr/local &&\
|
|
mkdir /dist/usr/local/3proxy &&\
|
|
mkdir /dist/usr/local/3proxy/conf &&\
|
|
mkdir /dist/usr/local/3proxy/libexec &&\
|
|
cp bin/3proxy /dist/bin &&\
|
|
cp bin/*.so /dist/usr/local/3proxy/libexec &&\
|
|
cp scripts/3proxy.cfg.inchroot /dist/etc/3proxy/3proxy.cfg
|
|
RUN cd /dist &&\
|
|
ln -s /lib lib64 &&\
|
|
ln -s /lib usr/lib &&\
|
|
ln -s /lib usr/lib64
|
|
RUN cp /lib/ld-musl-*.so.* /dist/usr/local/3proxy/libexec || true
|
|
|
|
FROM docker.io/busybox:musl
|
|
COPY --from=buildenv /dist /
|
|
RUN mkdir -p /lib /lib64 && ln -sf /usr/local/3proxy/libexec/* /lib/ && cd /usr/local/3proxy/ && ln -s libexec lib && ln -s libexec lib64 && mkdir usr && ln -s libexec usr/lib && ln -s libexec usr/lib64
|
|
CMD ["/bin/3proxy", "/etc/3proxy/3proxy.cfg"]
|