1- FROM redhat/ubi9
1+ FROM redhat/ubi9 AS wpr_dependencies
22
3- ARG WPR_WEB_SERVER_PORT=8080
4- ARG WPR_WEB_SERVER_SSL_PORT=8443
5-
6- ENV WPR_WEB_SERVER_PORT=${WPR_WEB_SERVER_PORT}
7- ENV WPR_WEB_SERVER_SSL_PORT=${WPR_WEB_SERVER_SSL_PORT}
3+ USER root
84
9- EXPOSE $WPR_WEB_SERVER_PORT
10- EXPOSE $WPR_WEB_SERVER_SSL_PORT
11- EXPOSE 2880
5+ RUN yum update -y --skip-broken && \
6+ yum module enable nginx:1.24 -y && \
7+ yum install -y nginx \
8+ java-17-openjdk-devel \
9+ perl && \
10+ yum remove -y webkit2gtk3-jsc \
11+ python-setuptools \
12+ python-urllib3 \
13+ python-idna \
14+ python-requests && \
15+ yum clean all && rm -rf /var/cache/yum && \
16+ rm -rf /etc/nginx/conf.d/default.conf /usr/share/nginx/html/* && \
17+ rm -rf /var/log/nginx/* && \
18+ ln -sf /dev/stderr /var/log/nginx/error.log
1219
1320ARG WPR_FILES_DIR=./files
14- ARG WPR_DEPLOYMENT_DIR=/home
1521ARG WPR_DICTIONARIES_DIR=/dictionaries
1622ARG WPR_CUSTOM_DICTIONARIES_DIR=$WPR_DICTIONARIES_DIR/CustomDictionaries
1723ARG WPR_USER_DICTIONARIES_DIR=$WPR_DICTIONARIES_DIR/UserDictionaries
1824ARG WPR_STYLE_GUIDE_DIR=$WPR_DICTIONARIES_DIR/StyleGuide
1925ARG WPR_CERT_DIR=/certificate
2026ARG WPR_CERT_KEY_NAME=key.pem
2127ARG WPR_CERT_FILE_NAME=cert.pem
22- ARG WPR_APP_ROOT_DIR=$WPR_DEPLOYMENT_DIR/WSC
23- ARG WPR_APP_SERVER_DIR=/opt/WebSpellChecker/AppServer
24- ARG WPR_APP_NAME_MASK=wsc_app*tar.gz
25- ARG WPR_USER_NAME=wsc
28+ ARG WPR_APP_INSTALL_DIR=/opt/WebSpellChecker
29+ ARG WPR_APP_SERVER_DIR=$WPR_APP_INSTALL_DIR/AppServer
2630ARG WPR_PATH_TO_SERVICE_FILES_DIRECTORY=/var/lib
31+ ARG WPR_WSC_SERVICE_FILES_PATH=$WPR_PATH_TO_SERVICE_FILES_DIRECTORY/WebSpellChecker
2732ARG WPR_USER_ID=2000
2833ARG WPR_GROUP_ID=2000
34+ ARG WPR_USER_NAME=wsc
2935
3036ENV WPR_APP_SERVER_DIR=${WPR_APP_SERVER_DIR}
3137
32- ENV WPR_AUTO_INSTALL=TRUE
33-
3438# Application installation parameters
3539# Protocol of the NGINX web server (1 - HTTPS, 2 - HTTP)
3640ARG WPR_PROTOCOL=2
3741# Web port outside the container. If value isn't specified (e.g. empty), the default value will be used (443 for HTTPS and 80 for HTTP).
3842ARG WPR_WEB_PORT
3943ARG WPR_DOMAIN_NAME=localhost
4044ARG WPR_VIRTUAL_DIR=wscservice
41- # Specify license ticket ID to activate the license during the image build. For example, LICENSE_TICKET_ID = 6u*************ZO
45+ # Specify license ticket ID to activate the license during the image build. For example, WPR_LICENSE_TICKET_ID = 6u*************ZO
4246ARG WPR_LICENSE_TICKET_ID
43- ARG WPR_PRODUCTS=4
44- ARG WPR_LANGUAGES=en_US,en_GB,en_CA,en_AU
45- ARG WPR_AI_MODELS=1,2
46- ARG WPR_INSTALL_SAMPLES=1
4747
4848# Proxy server settings
4949# If you are using a proxy server to handle inbound/outbound traffic to your network, for the automated license activation step, the following proxy settings must be added.
@@ -58,17 +58,14 @@ ARG WPR_ACCESS_KEY
5858
5959ENV WPR_CONFIG_USE_ENV=true
6060ENV WPR_FILE_OWNER=${WPR_USER_ID}:${WPR_GROUP_ID}
61- ENV WPR_PRODUCTS=${WPR_PRODUCTS}
62- ENV WPR_LANGUAGES=${WPR_LANGUAGES}
63- ENV WPR_AI_MODELS=${WPR_AI_MODELS}
64- ENV WPR_INSTALL_SAMPLES=${WPR_INSTALL_SAMPLES}
6561ENV WPR_PROTOCOL=${WPR_PROTOCOL}
6662ENV WPR_DOMAIN_NAME=${WPR_DOMAIN_NAME}
6763ENV WPR_WEB_PORT=${WPR_WEB_PORT}
6864ENV WPR_VIRTUAL_DIR=${WPR_VIRTUAL_DIR}
6965ENV WPR_WEB_SERVER_TYPE=2
7066ENV WPR_LICENSE_TICKET_ID=${WPR_LICENSE_TICKET_ID}
7167ENV WPR_PATH_TO_SERVICE_FILES_DIRECTORY=${WPR_PATH_TO_SERVICE_FILES_DIRECTORY}
68+ ENV WPR_WSC_SERVICE_FILES_PATH=${WPR_WSC_SERVICE_FILES_PATH}
7269ENV WPR_RESTART_WEB_SERVER=1
7370ENV WPR_CERT_DIR=${WPR_CERT_DIR}
7471ENV WPR_CERT_KEY_NAME=${WPR_CERT_KEY_NAME}
@@ -101,28 +98,39 @@ ENV WPR_ENABLE_REQUEST_VALIDATION=false
10198
10299ENV WPR_ACCESS_KEY=${WPR_ACCESS_KEY}
103100
101+ RUN groupadd --gid ${WPR_GROUP_ID} $WPR_USER_NAME && useradd --no-log-init --uid ${WPR_USER_ID} --gid ${WPR_GROUP_ID} $WPR_USER_NAME
102+
103+
104+ FROM wpr_dependencies AS wpr_installer
105+
104106RUN yum update -y --skip-broken && \
105- yum module enable nginx:1.24 -y && \
106- yum install -y nginx \
107- java-17-openjdk-devel \
108- perl \
109- wget && \
110- yum remove -y webkit2gtk3-jsc \
111- python-setuptools \
112- python-urllib3 \
113- python-idna \
114- python-requests && \
115- yum clean all && rm -rf /var/cache/yum && \
116- rm -rf /etc/nginx/conf.d/default.conf /usr/share/nginx/html/* && \
117- rm -rf /var/log/nginx/* && \
118- ln -sf /dev/stderr /var/log/nginx/error.log
107+ yum install -y wget
119108
120- RUN groupadd --gid ${WPR_GROUP_ID} $WPR_USER_NAME && useradd --no-log-init --uid ${WPR_USER_ID} --gid ${WPR_GROUP_ID} $WPR_USER_NAME
109+ ARG WPR_APP_NAME_MASK=wsc_app*tar.gz
110+ ARG WPR_DEPLOYMENT_DIR=/home
111+ ARG WPR_APP_ROOT_DIR=$WPR_DEPLOYMENT_DIR/WSC
112+
113+ # Comma-separated list of language IDs to install
114+ ARG WPR_LANGUAGES=en_US,en_GB,en_CA,en_AU
115+ # List of AI models to install:
116+ # 1. English language model
117+ # 2. English autocomplete model
118+ # 3. German language model
119+ # 4. Spanish language model
120+ ARG WPR_AI_MODELS=1,2
121+ ARG WPR_PRODUCTS=4
122+ ARG WPR_INSTALL_SAMPLES=1
123+
124+ ENV WPR_LANGUAGES=${WPR_LANGUAGES}
125+ ENV WPR_AI_MODELS=${WPR_AI_MODELS}
126+ ENV WPR_PRODUCTS=${WPR_PRODUCTS}
127+ ENV WPR_INSTALL_SAMPLES=${WPR_INSTALL_SAMPLES}
128+
129+ ENV WPR_AUTO_INSTALL=TRUE
121130
122131RUN mkdir -p $WPR_CUSTOM_DICTIONARIES_DIR \
123132 $WPR_USER_DICTIONARIES_DIR \
124- $WPR_PATH_TO_SERVICE_FILES_DIRECTORY/WebSpellChecker \
125- $WPR_APP_SERVER_DIR \
133+ $WPR_WSC_SERVICE_FILES_PATH \
126134 /var/run/nginx
127135
128136COPY $WPR_FILES_DIR/$WPR_APP_NAME_MASK $WPR_DEPLOYMENT_DIR/
@@ -139,26 +147,43 @@ RUN PACKAGE_FILE=$(ls -1t $WPR_DEPLOYMENT_DIR/$WPR_APP_NAME_MASK 2>/dev/null | h
139147 ln -s /dev/stdout $WPR_APP_SERVER_DIR/Logs/Child-0.log && \
140148 ln -s /dev/stdout $WPR_APP_SERVER_DIR/Logs/Child-1.log && \
141149 ln -s /dev/stdout $WPR_APP_SERVER_DIR/Logs/Action.log && \
142- chown -R ${WPR_USER_ID}:${WPR_GROUP_ID} $WPR_PATH_TO_SERVICE_FILES_DIRECTORY/WebSpellChecker $WPR_DICTIONARIES_DIR $WPR_APP_SERVER_DIR
143-
144- COPY $WPR_FILES_DIR/certificate/$WPR_CERT_KEY_NAME $WPR_CERT_DIR/$WPR_CERT_KEY_NAME
145- COPY $WPR_FILES_DIR/certificate/$WPR_CERT_FILE_NAME $WPR_CERT_DIR/$WPR_CERT_FILE_NAME
146- COPY $WPR_FILES_DIR/configure* $WPR_APP_SERVER_DIR/
147- COPY $WPR_FILES_DIR/startService.sh $WPR_APP_SERVER_DIR
148- RUN chown ${WPR_USER_ID}:${WPR_GROUP_ID} $WPR_APP_SERVER_DIR/startService.sh && \
149- chown ${WPR_USER_ID}:${WPR_GROUP_ID} $WPR_APP_SERVER_DIR/configureFiles.pl && \
150- chown ${WPR_USER_ID}:${WPR_GROUP_ID} $WPR_APP_SERVER_DIR/configureWebServer.pl && \
151- chmod +x $WPR_APP_SERVER_DIR/startService.sh
152-
153- RUN chown -R ${WPR_USER_ID}:${WPR_GROUP_ID} /var/log/nginx \
150+ chown -R ${WPR_FILE_OWNER} $WPR_WSC_SERVICE_FILES_PATH $WPR_DICTIONARIES_DIR $WPR_APP_INSTALL_DIR
151+
152+
153+ FROM wpr_dependencies AS wpr_service
154+
155+ ARG WPR_WEB_SERVER_PORT=8080
156+ ARG WPR_WEB_SERVER_SSL_PORT=8443
157+
158+ ENV WPR_WEB_SERVER_PORT=${WPR_WEB_SERVER_PORT}
159+ ENV WPR_WEB_SERVER_SSL_PORT=${WPR_WEB_SERVER_SSL_PORT}
160+
161+ EXPOSE $WPR_WEB_SERVER_PORT
162+ EXPOSE $WPR_WEB_SERVER_SSL_PORT
163+ EXPOSE 2880
164+
165+ RUN mkdir -p /var/run/nginx && chown -R ${WPR_FILE_OWNER} /var/run/nginx
166+
167+ COPY --from=wpr_installer --chown=${WPR_FILE_OWNER} $WPR_APP_INSTALL_DIR $WPR_APP_INSTALL_DIR
168+ COPY --from=wpr_installer --chown=${WPR_FILE_OWNER} $WPR_WSC_SERVICE_FILES_PATH $WPR_WSC_SERVICE_FILES_PATH
169+ COPY --from=wpr_installer --chown=${WPR_FILE_OWNER} $WPR_DICTIONARIES_DIR $WPR_DICTIONARIES_DIR
170+ COPY --from=wpr_installer --chown=${WPR_FILE_OWNER} /etc/nginx/conf.d/wscservice.conf /etc/nginx/conf.d/wscservice.conf
171+ COPY --from=wpr_installer --chown=${WPR_FILE_OWNER} /etc/nginx/nginx.conf /etc/nginx/nginx.conf
172+
173+ COPY --chown=${WPR_FILE_OWNER} $WPR_FILES_DIR/certificate/$WPR_CERT_KEY_NAME $WPR_CERT_DIR/$WPR_CERT_KEY_NAME
174+ COPY --chown=${WPR_FILE_OWNER} $WPR_FILES_DIR/certificate/$WPR_CERT_FILE_NAME $WPR_CERT_DIR/$WPR_CERT_FILE_NAME
175+ COPY --chown=${WPR_FILE_OWNER} $WPR_FILES_DIR/configure* $WPR_APP_SERVER_DIR/
176+ COPY --chown=${WPR_FILE_OWNER} $WPR_FILES_DIR/startService.sh $WPR_APP_SERVER_DIR
177+
178+ RUN chmod +x $WPR_APP_SERVER_DIR/startService.sh
179+
180+ RUN chown -R ${WPR_FILE_OWNER} /var/log/nginx \
154181 /usr/sbin/nginx \
155182 /var/lib/nginx \
156183 /var/run/nginx \
157184 /etc/nginx
158185
159- RUN yum remove -y wget && \
160- yum clean all && rm -rf /var/cache/yum && \
161- rm -rf /tmp/* && \
186+ RUN rm -rf /tmp/* && \
162187 rm -rf /var/tmp/*
163188
164189USER $WPR_USER_NAME
0 commit comments