# Rx3-Docker/Server Docker Image #------------------------------------------------------------------------------- ARG IMG_NAME ARG IMG_NAME_FULL ARG IMG_VERSION ARG IMG_MAINTAINER ARG IMG_FROM_URL ARG SERVER_PORT_SV_INT FROM ${IMG_FROM_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 INIT_SHELL='#!/bin/bash \n\ \n\ function log() { echo "$(date --rfc-3339=ns) Init: $*" | tee -a /var/log/init.log; } \n\ \n\ log "Starting" \n\ \n\ for pgm in /etc/rcD.d/* \n\ do \n\ if [[ -r ${pgm} ]] \n\ then \n\ if [[ ${pgm##*/} == S99* ]] \n\ then \n\ log "Executing: [${pgm##*/}]" \n\ log "Completed" \n\ exec ${pgm} \n\ else \n\ log "Calling: [${pgm##*/}]" \n\ ${pgm} \n\ fi \n\ fi \n\ done' #--------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- ARG SUPERVISORD='#!/bin/bash \n\ \n\ exec supervisord -c /etc/supervisord.conf' #--------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- ARG CROND='#!/bin/bash \n\ \n\ if [[ "${SERVER_CROND_ENABLED}" != "TRUE" ]] \n\ then \n\ mv /etc/supervisord.d/crond.ini /etc/supervisord.d/crond.ini.disabled \n\ fi' #--------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- ARG SUPERVISORD_INI='[inet_http_server] \n\ port=*:9001 \n\ \n\ [supervisord] \n\ nodaemon=true \n\ user=root' #--------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- ARG CROND_INI='[program:crond] \n\ command=crond -n' #--------------------------------------------------------------------------------------------------- RUN urpmi --force supervisor \ && echo -e "${INIT_SHELL}" | sed -e 's/ *$//' >/usr/local/sbin/init.sh \ && chmod a+x /usr/local/sbin/init.sh \ && mkdir /etc/rc.d/rcD.d \ && ln -s /etc/rc.d/rcD.d /etc \ && echo -e "${CROND}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/crond \ && echo -e "${SUPERVISORD}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/supervisord \ && chmod a+x /etc/init.d/crond \ && chmod a+x /etc/init.d/supervisord \ && ln -s /etc/init.d/crond /etc/rcD.d/S60crond \ && ln -s /etc/init.d/supervisord /etc/rcD.d/S99supervisord \ && echo -e "${CROND_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/crond.ini \ && echo -e "${SUPERVISORD_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/supervisord.ini EXPOSE ${SERVER_PORT_SV_INT} CMD [] ENTRYPOINT ["init.sh"]