FROM registry.fedoraproject.org/f29/s2i-core:latest # nginx 1.12 image. # # Volumes: # * /var/log/nginx/ - Storage for logs EXPOSE 8080 EXPOSE 8443 ENV NAME=nginx \ NGINX_VERSION=1.12 \ NGINX_SHORT_VER=112 \ VERSION=0 \ ARCH=x86_64 ENV SUMMARY="Platform for running nginx $NGINX_VERSION or building nginx-based application" \ DESCRIPTION="Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP \ protocols, with a strong focus on high concurrency, performance and low memory usage. The container \ image provides a containerized packaging of the nginx $NGINX_VERSION daemon. The image can be used \ as a base image for other applications based on nginx $NGINX_VERSION web server. \ Nginx server image can be extended using source-to-image tool." LABEL summary="${SUMMARY}" \ description="${DESCRIPTION}" \ io.k8s.description="${DESCRIPTION}" \ io.k8s.display-name="Nginx ${NGINX_VERSION}" \ io.openshift.expose-services="8080:http" \ io.openshift.expose-services="8443:https" \ io.openshift.tags="builder,${NAME},${NAME}${NGINX_SHORT_VER}" \ com.redhat.component="${NAME}" \ name="${FGC}/${NAME}" \ version="${VERSION}" \ maintainer="SoftwareCollections.org " \ help="For more information visit https://github.com/sclorg/${NAME}-container" \ usage="s2i build ${FGC}/nginx " ENV NGINX_CONFIGURATION_PATH=${APP_ROOT}/etc/nginx.d \ NGINX_CONF_PATH=/etc/nginx/nginx.conf \ NGINX_DEFAULT_CONF_PATH=${APP_ROOT}/etc/nginx.default.d \ NGINX_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/nginx \ NGINX_APP_ROOT=${APP_ROOT} RUN dnf install -y gettext hostname && \ INSTALL_PKGS="nss_wrapper bind-utils nginx" && \ dnf install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ rpm -V $INSTALL_PKGS && \ dnf clean all # Copy the S2I scripts from the specific language image to $STI_SCRIPTS_PATH COPY ./s2i/bin/ $STI_SCRIPTS_PATH # Copy extra files to the image. COPY ./root/ / # In order to drop the root user, we have to make some directories world # writeable as OpenShift default security model is to run the container under # random UID. RUN sed -i -f ${NGINX_APP_ROOT}/nginxconf-fed.sed ${NGINX_CONF_PATH} && \ chmod a+rwx ${NGINX_CONF_PATH} && \ mkdir -p ${NGINX_APP_ROOT}/etc/nginx.d/ && \ mkdir -p ${NGINX_APP_ROOT}/etc/nginx.default.d/ && \ mkdir -p ${NGINX_APP_ROOT}/src/nginx-start/ && \ mkdir -p ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ mkdir -p /var/log/nginx && \ ln -sf /dev/stdout /var/log/nginx/access.log && \ ln -sf /dev/stderr /var/log/nginx/error.log && \ chmod -R a+rwx ${NGINX_APP_ROOT}/etc && \ chmod -R a+rwx /var /run && \ chmod -R a+rwx ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ chown -R 1001:0 ${NGINX_APP_ROOT} && \ chown -R 1001:0 /var && \ chown -R 1001:0 ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ rpm-file-permissions USER 1001 # Not using VOLUME statement since it's not working in OpenShift Online: # https://github.com/sclorg/httpd-container/issues/30 # VOLUME ["/usr/share/nginx/html"] # VOLUME ["/var/log/nginx/"] CMD $STI_SCRIPTS_PATH/usage