Skip to content

Commit 4c4c268

Browse files
committed
Merge branch 'development'
2 parents 32f2059 + 7f35f4f commit 4c4c268

File tree

7 files changed

+350
-346
lines changed

7 files changed

+350
-346
lines changed

Dockerfile

Lines changed: 116 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,107 @@
11
FROM 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
1111
EXPOSE 2880
1212

1313
ENV 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

104106
RUN 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

151153
RUN 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

Comments
 (0)