11FROM ubuntu:24.04
22
3- ARG WEB_SERVER_PORT =8080
4- ARG WEB_SERVER_SSL_PORT =8443
3+ ARG WPR_WEB_SERVER_PORT =8080
4+ ARG WPR_WEB_SERVER_SSL_PORT =8443
55
6- ENV WPR_WEB_SERVER_PORT=${WEB_SERVER_PORT }
7- ENV WPR_WEB_SERVER_SSL_PORT=${WEB_SERVER_SSL_PORT }
6+ ENV WPR_WEB_SERVER_PORT=${WPR_WEB_SERVER_PORT }
7+ ENV WPR_WEB_SERVER_SSL_PORT=${WPR_WEB_SERVER_SSL_PORT }
88
9- EXPOSE $WEB_SERVER_PORT
10- EXPOSE $WEB_SERVER_SSL_PORT
9+ EXPOSE $WPR_WEB_SERVER_PORT
10+ EXPOSE $WPR_WEB_SERVER_SSL_PORT
1111EXPOSE 2880
1212
1313ENV DEBIAN_FRONTEND=noninteractive
1414
15- ARG FILES_DIR =./files
16- ARG DEPLOYMENT_DIR =/home
17- ARG DICTIONARIES_DIR =/dictionaries
18- ARG CUSTOM_DICTIONARIES_DIR=$DICTIONARIES_DIR /CustomDictionaries
19- ARG USER_DICTIONARIES_DIR=$DICTIONARIES_DIR /UserDictionaries
20- ARG STYLE_GUIDE_DIR=$DICTIONARIES_DIR /StyleGuide
21- ARG CERT_DIR =/certificate
22- ARG CERT_KEY_NAME =key.pem
23- ARG CERT_FILE_NAME =cert.pem
24- ARG APP_ROOT_DIR=$DEPLOYMENT_DIR /WSC
25- ARG APP_SERVER_DIR =/opt/WebSpellChecker/AppServer
26- ARG APP_NAME_MASK =wsc_app*tar.gz
27- ARG USER_NAME =wsc
28- ARG PATH_TO_SERVICE_FILES_DIRECTORY =/var/lib
29- ARG USER_ID =2000
30- ARG GROUP_ID =2000
31-
32- ENV WPR_APP_SERVER_DIR=${APP_SERVER_DIR }
15+ ARG WPR_FILES_DIR =./files
16+ ARG WPR_DEPLOYMENT_DIR =/home
17+ ARG WPR_DICTIONARIES_DIR =/dictionaries
18+ ARG WPR_CUSTOM_DICTIONARIES_DIR=$WPR_DICTIONARIES_DIR /CustomDictionaries
19+ ARG WPR_USER_DICTIONARIES_DIR=$WPR_DICTIONARIES_DIR /UserDictionaries
20+ ARG WPR_STYLE_GUIDE_DIR=$WPR_DICTIONARIES_DIR /StyleGuide
21+ ARG WPR_CERT_DIR =/certificate
22+ ARG WPR_CERT_KEY_NAME =key.pem
23+ ARG WPR_CERT_FILE_NAME =cert.pem
24+ ARG WPR_APP_ROOT_DIR=$WPR_DEPLOYMENT_DIR /WSC
25+ ARG WPR_APP_SERVER_DIR =/opt/WebSpellChecker/AppServer
26+ ARG WPR_APP_NAME_MASK =wsc_app*tar.gz
27+ ARG WPR_USER_NAME =wsc
28+ ARG WPR_PATH_TO_SERVICE_FILES_DIRECTORY =/var/lib
29+ ARG WPR_USER_ID =2000
30+ ARG WPR_GROUP_ID =2000
31+
32+ ENV WPR_APP_SERVER_DIR=${WPR_APP_SERVER_DIR }
3333
3434ENV WPR_AUTO_INSTALL=TRUE
3535
3636# Application installation parameters
3737# Protocol of the NGINX web server (1 - HTTPS, 2 - HTTP)
38- ARG PROTOCOL =2
38+ ARG WPR_PROTOCOL =2
3939# 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).
40- ARG WEB_PORT
41- ARG DOMAIN_NAME =localhost
42- ARG VIRTUAL_DIR =wscservice
43- # Specify license ticket ID to activate the license during the image build. For example, LICENSE_TICKET_ID = 6u*************ZO
44- ARG LICENSE_TICKET_ID
45- ARG PRODUCTS =4
46- ARG LANGUAGES =en_US,en_GB,en_CA,en_AU
47- ARG AI_MODELS =1,2
48- ARG INSTALL_SAMPLES =1
40+ ARG WPR_WEB_PORT
41+ ARG WPR_DOMAIN_NAME =localhost
42+ ARG WPR_VIRTUAL_DIR =wscservice
43+ # Specify license ticket ID to activate the license during the image build. For example, WPR_LICENSE_TICKET_ID = 6u*************ZO
44+ ARG WPR_LICENSE_TICKET_ID
45+ ARG WPR_PRODUCTS =4
46+ ARG WPR_LANGUAGES =en_US,en_GB,en_CA,en_AU
47+ ARG WPR_AI_MODELS =1,2
48+ ARG WPR_INSTALL_SAMPLES =1
4949
5050# Proxy server settings
5151# 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.
52- ARG ENABLE_PROXY =0
53- ARG PROXY_HOST
54- ARG PROXY_PORT
55- ARG PROXY_USER_NAME
56- ARG PROXY_PASSWORD
52+ ARG WPR_ENABLE_PROXY =0
53+ ARG WPR_PROXY_HOST
54+ ARG WPR_PROXY_PORT
55+ ARG WPR_PROXY_USER_NAME
56+ ARG WPR_PROXY_PASSWORD
5757
5858# Access Key for Custom Dictionary and Style Guide API
59- ARG ACCESS_KEY
59+ ARG WPR_ACCESS_KEY
6060
6161ENV WPR_CONFIG_USE_ENV=true
62- ENV WPR_FILE_OWNER=${USER_ID }:${GROUP_ID }
63- ENV WPR_PRODUCTS=${PRODUCTS }
64- ENV WPR_LANGUAGES=${LANGUAGES }
65- ENV WPR_AI_MODELS=${AI_MODELS }
66- ENV WPR_INSTALL_SAMPLES=${INSTALL_SAMPLES }
67- ENV WPR_PROTOCOL=${PROTOCOL }
68- ENV WPR_DOMAIN_NAME=${DOMAIN_NAME }
69- ENV WPR_WEB_PORT=${WEB_PORT }
70- ENV WPR_VIRTUAL_DIR=${VIRTUAL_DIR }
62+ ENV WPR_FILE_OWNER=${WPR_USER_ID }:${WPR_GROUP_ID }
63+ ENV WPR_PRODUCTS=${WPR_PRODUCTS }
64+ ENV WPR_LANGUAGES=${WPR_LANGUAGES }
65+ ENV WPR_AI_MODELS=${WPR_AI_MODELS }
66+ ENV WPR_INSTALL_SAMPLES=${WPR_INSTALL_SAMPLES }
67+ ENV WPR_PROTOCOL=${WPR_PROTOCOL }
68+ ENV WPR_DOMAIN_NAME=${WPR_DOMAIN_NAME }
69+ ENV WPR_WEB_PORT=${WPR_WEB_PORT }
70+ ENV WPR_VIRTUAL_DIR=${WPR_VIRTUAL_DIR }
7171ENV WPR_WEB_SERVER_TYPE=2
72- ENV WPR_LICENSE_TICKET_ID=${LICENSE_TICKET_ID }
73- ENV WPR_PATH_TO_SERVICE_FILES_DIRECTORY=${PATH_TO_SERVICE_FILES_DIRECTORY }
72+ ENV WPR_LICENSE_TICKET_ID=${WPR_LICENSE_TICKET_ID }
73+ ENV WPR_PATH_TO_SERVICE_FILES_DIRECTORY=${WPR_PATH_TO_SERVICE_FILES_DIRECTORY }
7474ENV WPR_RESTART_WEB_SERVER=1
75- ENV WPR_CERT_DIR=${CERT_DIR }
76- ENV WPR_CERT_KEY_NAME=${CERT_KEY_NAME }
77- ENV WPR_CERT_FILE_NAME=${CERT_FILE_NAME }
78- ENV WPR_DICTIONARIES_DIR=${DICTIONARIES_DIR }
79- ENV WPR_CUSTOM_DICTIONARIES_DIR=${CUSTOM_DICTIONARIES_DIR }
80- ENV WPR_USER_DICTIONARIES_DIR=${USER_DICTIONARIES_DIR }
81- ENV WPR_STYLE_GUIDE_DIR=${STYLE_GUIDE_DIR }
75+ ENV WPR_CERT_DIR=${WPR_CERT_DIR }
76+ ENV WPR_CERT_KEY_NAME=${WPR_CERT_KEY_NAME }
77+ ENV WPR_CERT_FILE_NAME=${WPR_CERT_FILE_NAME }
78+ ENV WPR_DICTIONARIES_DIR=${WPR_DICTIONARIES_DIR }
79+ ENV WPR_CUSTOM_DICTIONARIES_DIR=${WPR_CUSTOM_DICTIONARIES_DIR }
80+ ENV WPR_USER_DICTIONARIES_DIR=${WPR_USER_DICTIONARIES_DIR }
81+ ENV WPR_STYLE_GUIDE_DIR=${WPR_STYLE_GUIDE_DIR }
8282
8383# The log size must be set to 0 for Docker.
8484ENV WPR_SIZE=0
8585
86- ENV WPR_ENABLE_PROXY=${ENABLE_PROXY }
87- ENV WPR_PROXY_HOST=${PROXY_HOST }
88- ENV WPR_PROXY_PORT=${PROXY_PORT }
89- ENV WPR_PROXY_USER_NAME=${PROXY_USER_NAME }
90- ENV WPR_PROXY_PASSWORD=${PROXY_PASSWORD }
86+ ENV WPR_ENABLE_PROXY=${WPR_ENABLE_PROXY }
87+ ENV WPR_PROXY_HOST=${WPR_PROXY_HOST }
88+ ENV WPR_PROXY_PORT=${WPR_PROXY_PORT }
89+ ENV WPR_PROXY_USER_NAME=${WPR_PROXY_USER_NAME }
90+ ENV WPR_PROXY_PASSWORD=${WPR_PROXY_PASSWORD }
9191
9292# Database for collecting statistics
9393ENV WPR_ENABLE_DATABASE_PROVIDER=false
@@ -101,7 +101,7 @@ ENV WPR_REQUEST_STATISTIC_DATA_TYPE=DATABASE
101101ENV WPR_ENABLE_USER_ACTION_STATISTIC=false
102102ENV WPR_ENABLE_REQUEST_VALIDATION=false
103103
104- ENV WPR_ACCESS_KEY=${ACCESS_KEY }
104+ ENV WPR_ACCESS_KEY=${WPR_ACCESS_KEY }
105105
106106RUN apt-get update && \
107107 apt-get upgrade -y perl && \
@@ -112,48 +112,48 @@ RUN apt-get update && \
112112 rm -rf /var/log/nginx/* && \
113113 ln -sf /dev/stderr /var/log/nginx/error.log
114114
115- RUN groupadd --gid ${GROUP_ID } $USER_NAME && useradd --no-log-init --uid ${USER_ID } --gid ${GROUP_ID } $USER_NAME
115+ RUN groupadd --gid ${WPR_GROUP_ID } $WPR_USER_NAME && useradd --no-log-init --uid ${WPR_USER_ID } --gid ${WPR_GROUP_ID } $WPR_USER_NAME
116116
117- RUN mkdir -p $CUSTOM_DICTIONARIES_DIR \
118- $USER_DICTIONARIES_DIR \
119- $PATH_TO_SERVICE_FILES_DIRECTORY /WebSpellChecker \
117+ RUN mkdir -p $WPR_CUSTOM_DICTIONARIES_DIR \
118+ $WPR_USER_DICTIONARIES_DIR \
119+ $WPR_PATH_TO_SERVICE_FILES_DIRECTORY /WebSpellChecker \
120120 /var/run/nginx
121121
122- COPY $FILES_DIR/$APP_NAME_MASK $DEPLOYMENT_DIR /
123- RUN PACKAGE_FILE=$(ls -1t $DEPLOYMENT_DIR/$APP_NAME_MASK 2>/dev/null | head -n 1) && \
122+ COPY $WPR_FILES_DIR/$WPR_APP_NAME_MASK $WPR_DEPLOYMENT_DIR /
123+ RUN PACKAGE_FILE=$(ls -1t $WPR_DEPLOYMENT_DIR/$WPR_APP_NAME_MASK 2>/dev/null | head -n 1) && \
124124 [ -z "$PACKAGE_FILE" ] && exit 1 || \
125125 echo "Using package file: $PACKAGE_FILE" && \
126- tar -xvf $PACKAGE_FILE -C $DEPLOYMENT_DIR / && \
127- perl $APP_ROOT_DIR */automated_install.pl || exit 1 && \
128- rm -rf $APP_ROOT_DIR * $DEPLOYMENT_DIR/$APP_NAME_MASK && \
129- mkdir -p $APP_SERVER_DIR /Logs && \
130- cp -r $APP_SERVER_DIR /Logs $APP_SERVER_DIR /Build_Logs && \
131- rm -rf $APP_SERVER_DIR /Logs/* && \
132- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Main.log && \
133- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Child-0.log && \
134- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Child-1.log && \
135- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Action.log && \
136- chown -R ${USER_ID }:${GROUP_ID } $PATH_TO_SERVICE_FILES_DIRECTORY /WebSpellChecker $DICTIONARIES_DIR $APP_SERVER_DIR
137-
138- COPY $FILES_DIR /certificate/$CERT_KEY_NAME $CERT_DIR/$CERT_KEY_NAME
139- COPY $FILES_DIR /certificate/$CERT_FILE_NAME $CERT_DIR/$CERT_FILE_NAME
140- COPY $FILES_DIR /configure* $APP_SERVER_DIR /
141- COPY $FILES_DIR /startService.sh $APP_SERVER_DIR
142- RUN chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /startService.sh && \
143- chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /configureFiles.pl && \
144- chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /configureWebServer.pl && \
145- chmod +x $APP_SERVER_DIR /startService.sh
146-
147- RUN chown -R ${USER_ID }:${GROUP_ID } /var/log/nginx \
126+ tar -xvf $PACKAGE_FILE -C $WPR_DEPLOYMENT_DIR / && \
127+ perl $WPR_APP_ROOT_DIR */automated_install.pl || exit 1 && \
128+ rm -rf $WPR_APP_ROOT_DIR * $WPR_DEPLOYMENT_DIR/$WPR_APP_NAME_MASK && \
129+ mkdir -p $WPR_APP_SERVER_DIR /Logs && \
130+ cp -r $WPR_APP_SERVER_DIR /Logs $WPR_APP_SERVER_DIR /Build_Logs && \
131+ rm -rf $WPR_APP_SERVER_DIR /Logs/* && \
132+ ln -s /dev/stdout $WPR_APP_SERVER_DIR /Logs/Main.log && \
133+ ln -s /dev/stdout $WPR_APP_SERVER_DIR /Logs/Child-0.log && \
134+ ln -s /dev/stdout $WPR_APP_SERVER_DIR /Logs/Child-1.log && \
135+ ln -s /dev/stdout $WPR_APP_SERVER_DIR /Logs/Action.log && \
136+ chown -R ${WPR_USER_ID }:${WPR_GROUP_ID } $WPR_PATH_TO_SERVICE_FILES_DIRECTORY /WebSpellChecker $WPR_DICTIONARIES_DIR $WPR_APP_SERVER_DIR
137+
138+ COPY $WPR_FILES_DIR /certificate/$WPR_CERT_KEY_NAME $WPR_CERT_DIR/$WPR_CERT_KEY_NAME
139+ COPY $WPR_FILES_DIR /certificate/$WPR_CERT_FILE_NAME $WPR_CERT_DIR/$WPR_CERT_FILE_NAME
140+ COPY $WPR_FILES_DIR /configure* $WPR_APP_SERVER_DIR /
141+ COPY $WPR_FILES_DIR /startService.sh $WPR_APP_SERVER_DIR
142+ RUN chown ${WPR_USER_ID }:${WPR_GROUP_ID } $WPR_APP_SERVER_DIR /startService.sh && \
143+ chown ${WPR_USER_ID }:${WPR_GROUP_ID } $WPR_APP_SERVER_DIR /configureFiles.pl && \
144+ chown ${WPR_USER_ID }:${WPR_GROUP_ID } $WPR_APP_SERVER_DIR /configureWebServer.pl && \
145+ chmod +x $WPR_APP_SERVER_DIR /startService.sh
146+
147+ RUN chown -R ${WPR_USER_ID }:${WPR_GROUP_ID } /var/log/nginx \
148148 /usr/sbin/nginx \
149149 /var/lib/nginx \
150150 /var/run/nginx \
151151 /etc/nginx
152152
153153RUN apt-get remove -y wget && apt-get autoremove -y
154154
155- USER $USER_NAME
155+ USER $WPR_USER_NAME
156156
157- WORKDIR $APP_SERVER_DIR
157+ WORKDIR $WPR_APP_SERVER_DIR
158158
159159ENTRYPOINT ["sh" , "-c" , "${WPR_APP_SERVER_DIR}/startService.sh" ]
0 commit comments