# Rx3-Docker/MicroSocks Dockerfile
#-------------------------------------------------------------------------------

ARG IMG_FROM_URL="rx3-docker/server:latest"

FROM ${IMG_FROM_URL}

ARG IMG_NAME
ARG IMG_NAME_FULL
ARG IMG_VERSION
ARG IMG_MAINTAINER
ARG IMG_URL

LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL}
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER}
LABEL maintainer=${IMG_MAINTAINER}

ARG MICROSOCKS_PORT

ARG MICROSOCKS_LIB=/var/lib/microsocks
ARG MICROSOCKS_HOME=${MICROSOCKS_LIB}



#---------------------------------------------------------------------------------------------------------------
ARG MICROSOCKSD='#!/bin/bash                                                                                 \n\
                                                                                                             \n\
usermod  -u ${MICROSOCKS_UID} microsocks                                                                     \n\
groupmod -g ${MICROSOCKS_GID} microsocks                                                                     \n\
                                                                                                             \n\
chown -R microsocks:microsocks '${MICROSOCKS_LIB}
#---------------------------------------------------------------------------------------------------------------



#---------------------------------------------------------------------------------------------------------------
ARG MICROSOCKSD_INI='[program:microsockd]                                                                    \n\
directory='${MICROSOCKS_HOME}'                                                                               \n\
command=/bin/bash -c `microsocks ${MICROSOCKS_OPTIONS}`                                                      \n\
user=microsocks'
#---------------------------------------------------------------------------------------------------------------



#---------------------------------------------------------------------------------------------------------------
ARG MYIPD_INI='[program:myipd]                                                                               \n\
directory='${MICROSOCKS_HOME}'                                                                               \n\
command=/bin/bash -c `while true; do nc -l -q 0 -p ${MYIPD_PORT} -c myip; done`                              \n\
user=microsocks'
#---------------------------------------------------------------------------------------------------------------



RUN    . /etc/profile.d/rx3.sh && isl --add ${IMG_URL}                                                         \
    && urpmi.update -a                                                                                         \
    && urpmi --force microsocks netcat-traditional                                                             \
    && mkdir        ${MICROSOCKS_LIB}                                                                          \
    && useradd  -M --home-dir ${MICROSOCKS_HOME} --password "" microsocks                                      \
    && echo  -e     "${MICROSOCKSD}"     | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/microsocksd            \
    && chmod a+x    /etc/init.d/microsocksd                                                                    \
    && ln    -s     /etc/init.d/microsocksd /etc/rcD.d/S30microsocksd                                          \
    && echo  -e     "${MICROSOCKSD_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/microsocksd.ini \
    && echo  -e     "${MYIPD_INI}"       | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/myipd.ini

EXPOSE ${MICROSOCKS_PORT}
