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 WEB_SERVER_PORT =${WEB_SERVER_PORT }
7- ENV 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 APP_SERVER_DIR =${APP_SERVER_DIR }
33-
34- ENV WSC_AUTO_INSTALL =TRUE
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 }
33+
34+ ENV 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
60-
61- ENV WPROOFREADER_CONFIG_USE_ENV=true
62- ENV FILE_OWNER=${USER_ID}:${GROUP_ID}
63- ENV PRODUCTS=${PRODUCTS}
64- ENV LANGUAGES=${LANGUAGES}
65- ENV AI_MODELS=${AI_MODELS}
66- ENV INSTALL_SAMPLES=${INSTALL_SAMPLES}
67- ENV PROTOCOL=${PROTOCOL}
68- ENV DOMAIN_NAME=${DOMAIN_NAME}
69- ENV WEB_PORT=${WEB_PORT}
70- ENV VIRTUAL_DIR=${VIRTUAL_DIR}
71- ENV WEB_SERVER_TYPE=2
72- ENV LICENSE_TICKET_ID=${LICENSE_TICKET_ID}
73- ENV PATH_TO_SERVICE_FILES_DIRECTORY=${PATH_TO_SERVICE_FILES_DIRECTORY}
74- ENV RESTART_WEB_SERVER=1
75- ENV CERT_DIR=${CERT_DIR}
76- ENV CERT_KEY_NAME=${CERT_KEY_NAME}
77- ENV CERT_FILE_NAME=${CERT_FILE_NAME}
78- ENV DICTIONARIES_DIR=${DICTIONARIES_DIR}
79- ENV CUSTOM_DICTIONARIES_DIR=${CUSTOM_DICTIONARIES_DIR}
80- ENV USER_DICTIONARIES_DIR=${USER_DICTIONARIES_DIR}
81- ENV STYLE_GUIDE_DIR=${STYLE_GUIDE_DIR}
82- ENV SIZE=0
83-
84- ENV ENABLE_PROXY=${ENABLE_PROXY}
85- ENV PROXY_HOST=${PROXY_HOST}
86- ENV PROXY_PORT=${PROXY_PORT}
87- ENV PROXY_USER_NAME=${PROXY_USER_NAME}
88- ENV PROXY_PASSWORD=${PROXY_PASSWORD}
59+ ARG WPR_ACCESS_KEY
60+
61+ ENV WPR_CONFIG_USE_ENV=true
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}
71+ ENV WPR_WEB_SERVER_TYPE=2
72+ ENV WPR_LICENSE_TICKET_ID=${WPR_LICENSE_TICKET_ID}
73+ ENV WPR_PATH_TO_SERVICE_FILES_DIRECTORY=${WPR_PATH_TO_SERVICE_FILES_DIRECTORY}
74+ ENV WPR_RESTART_WEB_SERVER=1
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}
82+
83+ # The log size must be set to 0 for Docker.
84+ ENV WPR_SIZE=0
85+
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}
8991
9092# Database for collecting statistics
91- ENV ENABLE_DATABASE_PROVIDER =false
92- ENV DATABASE_HOST =''
93- ENV DATABASE_PORT =3306
94- ENV DATABASE_SCHEMA =''
95- ENV DATABASE_USER =''
96- ENV DATABASE_PASSWORD =''
97- ENV ENABLE_REQUEST_STATISTIC =false
98- ENV REQUEST_STATISTIC_DATA_TYPE =DATABASE
99- ENV ENABLE_USER_ACTION_STATISTIC =false
100- ENV ENABLE_REQUEST_VALIDATION =false
101-
102- ENV ACCESS_KEY =${ACCESS_KEY }
93+ ENV WPR_ENABLE_DATABASE_PROVIDER =false
94+ ENV WPR_DATABASE_HOST =''
95+ ENV WPR_DATABASE_PORT =3306
96+ ENV WPR_DATABASE_SCHEMA =''
97+ ENV WPR_DATABASE_USER =''
98+ ENV WPR_DATABASE_PASSWORD =''
99+ ENV WPR_ENABLE_REQUEST_STATISTIC =false
100+ ENV WPR_REQUEST_STATISTIC_DATA_TYPE =DATABASE
101+ ENV WPR_ENABLE_USER_ACTION_STATISTIC =false
102+ ENV WPR_ENABLE_REQUEST_VALIDATION =false
103+
104+ ENV WPR_ACCESS_KEY =${WPR_ACCESS_KEY }
103105
104106RUN apt-get update && \
105107 apt-get upgrade -y perl && \
@@ -110,48 +112,48 @@ RUN apt-get update && \
110112 rm -rf /var/log/nginx/* && \
111113 ln -sf /dev/stderr /var/log/nginx/error.log
112114
113- 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
114116
115- RUN mkdir -p $CUSTOM_DICTIONARIES_DIR \
116- $USER_DICTIONARIES_DIR \
117- $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 \
118120 /var/run/nginx
119121
120- COPY $FILES_DIR/$APP_NAME_MASK $DEPLOYMENT_DIR /
121- 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) && \
122124 [ -z "$PACKAGE_FILE" ] && exit 1 || \
123125 echo "Using package file: $PACKAGE_FILE" && \
124- tar -xvf $PACKAGE_FILE -C $DEPLOYMENT_DIR / && \
125- perl $APP_ROOT_DIR */automated_install.pl || exit 1 && \
126- rm -rf $APP_ROOT_DIR * $DEPLOYMENT_DIR/$APP_NAME_MASK && \
127- mkdir -p $APP_SERVER_DIR /Logs && \
128- cp -r $APP_SERVER_DIR /Logs $APP_SERVER_DIR /Build_Logs && \
129- rm -rf $APP_SERVER_DIR /Logs/* && \
130- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Main.log && \
131- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Child-0.log && \
132- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Child-1.log && \
133- ln -s /dev/stdout $APP_SERVER_DIR /Logs/Action.log && \
134- chown -R ${USER_ID }:${GROUP_ID } $PATH_TO_SERVICE_FILES_DIRECTORY /WebSpellChecker $DICTIONARIES_DIR $APP_SERVER_DIR
135-
136- COPY $FILES_DIR /certificate/$CERT_KEY_NAME $CERT_DIR/$CERT_KEY_NAME
137- COPY $FILES_DIR /certificate/$CERT_FILE_NAME $CERT_DIR/$CERT_FILE_NAME
138- COPY $FILES_DIR /configure* $APP_SERVER_DIR /
139- COPY $FILES_DIR /startService.sh $APP_SERVER_DIR
140- RUN chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /startService.sh && \
141- chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /configureFiles.pl && \
142- chown ${USER_ID }:${GROUP_ID } $APP_SERVER_DIR /configureWebServer.pl && \
143- chmod +x $APP_SERVER_DIR /startService.sh
144-
145- 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 \
146148 /usr/sbin/nginx \
147149 /var/lib/nginx \
148150 /var/run/nginx \
149151 /etc/nginx
150152
151153RUN apt-get remove -y wget && apt-get autoremove -y
152154
153- USER $USER_NAME
155+ USER $WPR_USER_NAME
154156
155- WORKDIR $APP_SERVER_DIR
157+ WORKDIR $WPR_APP_SERVER_DIR
156158
157- ENTRYPOINT sh ${APP_SERVER_DIR }/startService.sh
159+ ENTRYPOINT [ "sh" , "-c" , "${WPR_APP_SERVER_DIR }/startService.sh" ]
0 commit comments