| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # 3proxy.full is fully functional 3proxy build based on busibox:glibc
- #
- #to build:
- # docker build -f Dockerfile.full -t 3proxy.full .
- #to run:
- # by default 3proxy uses safe chroot environment with chroot to /usr/local/3proxy with uid/gid 65535/65535 and expects
- # configuration file to be placed in /usr/local/etc/3proxy.
- # Paths in configuration file must be relative to /usr/local/3proxy, that is use /logs instead of
- # /usr/local/3proxy/logs. nserver in chroot is required for DNS resolution. An example:
- #
- # echo nserver 8.8.8.8 >/path/to/local/config/directory/3proxy.cfg
- # echo proxy -p3129 >>/path/to/local/config/directory/3proxy.cfg
- # docker run -p 3129:3129 -v /path/to/local/config/directory:/usr/local/3proxy/conf -name 3proxy.full 3proxy.full
- #
- # /path/to/local/config/directory in this example must conrain 3proxy.cfg
- # if you need 3proxy to be executed without chroot with root permissions, replace /etc/3proxy/3proxy.cfg by e.g. mounting config
- # dir to /etc/3proxy ot by providing config file /etc/3proxy/3proxy.cfg
- # docker run -p 3129:3129 -v /path/to/local/config/directory:/etc/3proxy -name 3proxy.full 3proxy.full
- #
- # use "log" without pathname in config to log to stdout.
- # plugins are located in /usr/local/3proxy/libexec (/libexec for chroot config).
- FROM gcc AS buildenv
- COPY . 3proxy
- RUN cd 3proxy &&\
- echo "">> Makefile.Linux &&\
- echo PLUGINS = StringsPlugin TrafficPlugin PCREPlugin TransparentPlugin SSLPlugin>>Makefile.Linux &&\
- echo LIBS = -l:libcrypto.a -l:libssl.a -ldl >>Makefile.Linux &&\
- make -f Makefile.Linux &&\
- strip bin/3proxy &&\
- strip bin/StringsPlugin.ld.so &&\
- strip bin/TrafficPlugin.ld.so &&\
- strip bin/PCREPlugin.ld.so &&\
- strip bin/TransparentPlugin.ld.so &&\
- strip bin/SSLPlugin.ld.so
- FROM busybox:glibc
- COPY --from=buildenv /lib/x86_64-linux-gnu/libdl.so.* /lib/
- COPY --from=buildenv 3proxy/bin/3proxy /bin/
- COPY --from=buildenv 3proxy/bin/*.ld.so /usr/local/3proxy/libexec/
- RUN mkdir /usr/local/3proxy/logs &&\
- mkdir /usr/local/3proxy/conf &&\
- chown -R 65535:65535 /usr/local/3proxy &&\
- chmod -R 550 /usr/local/3proxy &&\
- chmod 750 /usr/local/3proxy/logs &&\
- chmod -R 555 /usr/local/3proxy/libexec &&\
- chown -R root /usr/local/3proxy/libexec &&\
- mkdir /etc/3proxy/ &&\
- echo chroot /usr/local/3proxy 65535 65535 >/etc/3proxy/3proxy.cfg &&\
- echo include /conf/3proxy.cfg >>/etc/3proxy/3proxy.cfg &&\
- chmod 440 /etc/3proxy/3proxy.cfg
- CMD ["/bin/3proxy", "/etc/3proxy/3proxy.cfg"]
|