Merge branch 'develop' into bugfix/fixed-firefox-header

This commit is contained in:
Nikita Gopienko 2021-05-18 18:08:53 +03:00
commit 84565d46c6
8 changed files with 112 additions and 11 deletions

View File

@ -96,6 +96,10 @@ ENTRYPOINT ["./docker-entrypoint.sh"]
FROM nginx AS web
ARG SRC_PATH
ARG BUILD_PATH
ARG COUNT_WORKER_CONNECTIONS=1024
ENV DNS_NAMESERVER=127.0.0.11 \
COUNT_WORKER_CONNECTIONS=$COUNT_WORKER_CONNECTIONS \
MAP_HASH_BUCKET_SIZE=""
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
apt-get -y update && \
@ -119,6 +123,8 @@ COPY --from=base ${SRC_PATH}/products/ASC.Calendar/Client/dist ${BUILD_PATH}/pro
COPY --from=base ${SRC_PATH}/products/ASC.Mail/Client/dist ${BUILD_PATH}/products/ASC.Mail/client
COPY /config/nginx/templates/upstream.conf.template /etc/nginx/templates/upstream.conf.template
COPY /config/nginx/templates/nginx.conf.template /etc/nginx/nginx.conf.template
COPY prepare-nginx-proxy.sh /docker-entrypoint.d/prepare-nginx-proxy.sh
# add defualt user and group for no-root run
RUN chown nginx:nginx /etc/nginx/* -R && \
@ -135,10 +141,7 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
sed -i 's/localhost:5023/$service_calendar/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:5022/$service_mail/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:9999/$service_urlshortener/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
# configute the image nginx whith less privileged https://hub.docker.com/_/nginx
sed -i 's/pid.*nginx.pid;/pid \/tmp\/nginx.pid;/' /etc/nginx/nginx.conf && \
sed -i 's/http.*{/http {\n client_body_temp_path \/tmp\/client_temp;\n proxy_temp_path \/tmp\/proxy_temp_path;\n fastcgi_temp_path \/tmp\/fastcgi_temp;\n uwsgi_temp_path \/tmp\/uwsgi_temp;\n scgi_temp_path \/tmp\/scgi_temp;/' /etc/nginx/nginx.conf
sed -i 's/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf
## ASC.ApiSystem ##
FROM builder AS api_system
@ -313,3 +316,30 @@ COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Studio/service/ .
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
## image for k8s bin-share ##
FROM busybox:latest AS bin_share
RUN mkdir -p /app/appserver/ASC.Files/server && \
mkdir -p /app/appserver/ASC.People/server/ && \
mkdir -p /app/appserver/ASC.CRM/server/ && \
mkdir -p /app/appserver/ASC.Projects/server/ && \
mkdir -p /app/appserver/ASC.Calendar/server/ && \
mkdir -p /app/appserver/ASC.Mail/server/ && \
addgroup --system --gid 107 onlyoffice && \
adduser -u 104 onlyoffice --home /var/www/onlyoffice --system -G onlyoffice
COPY bin-share-docker-entrypoint.sh /app/docker-entrypoint.sh
COPY --from=base /var/www/products/ASC.Files/server/ /app/appserver/ASC.Files/server/
COPY --from=base /var/www/products/ASC.People/server/ /app/appserver/ASC.People/server/
COPY --from=base /var/www/products/ASC.CRM/server/ /app/appserver/ASC.CRM/server/
COPY --from=base /var/www/products/ASC.Projects/server/ /app/appserver/ASC.Projects/server/
COPY --from=base /var/www/products/ASC.Calendar/server/ /app/appserver/ASC.Calendar/server/
COPY --from=base /var/www/products/ASC.Mail/server/ /app/appserver/ASC.Mail/server/
ENTRYPOINT ["./app/docker-entrypoint.sh"]
## image for k8s wait-bin-share ##
FROM busybox:latest AS wait_bin_share
RUN mkdir /app
COPY wait-bin-share-docker-entrypoint.sh /app/docker-entrypoint.sh
ENTRYPOINT ["./app/docker-entrypoint.sh"]

View File

@ -0,0 +1,14 @@
#!/bin/sh
echo "##################################################################"
echo "##### Run preparation for launching AppServer services #####"
echo "##################################################################"
cp -r /app/appserver/ASC.Files/server/* /var/www/products/ASC.Files/server/
cp -r /app/appserver/ASC.People/server/* /var/www/products/ASC.People/server/
cp -r /app/appserver/ASC.CRM/server/* /var/www/products/ASC.CRM/server/
cp -r /app/appserver/ASC.Projects/server/* /var/www/products/ASC.Projects/server/
cp -r /app/appserver/ASC.Calendar/server/* /var/www/products/ASC.Calendar/server/
cp -r /app/appserver/ASC.Mail/server/* /var/www/products/ASC.Mail/server/
chown -R onlyoffice:onlyoffice /var/www/products/
echo "Ok" > /var/www/products/ASC.Files/server/status.txt
echo "Preparation for launching AppServer services is complete"

View File

@ -133,7 +133,21 @@ services:
dockerfile: "${DOCKERFILE}"
target: studio
image: "${REPO}/${STATUS}appserver-studio:${SRV_VERSION}"
onlyoffice-bin-share:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: bin_share
image: "${REPO}/${STATUS}appserver-bin-share:${SRV_VERSION}"
onlyoffice-wait-bin-share:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: wait_bin_share
image: "${REPO}/${STATUS}appserver-wait-bin-share:${SRV_VERSION}"
onlyoffice-proxy:
build:
context: ./

View File

@ -0,0 +1,34 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /tmp/nginx.pid;
events {
worker_connections $COUNT_WORKER_CONNECTIONS;
}
http {
$MAP_HASH_BUCKET_SIZE
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}

View File

@ -1,4 +1,4 @@
resolver 127.0.0.11 valid=30s;
resolver $DNS_NAMESERVER valid=30s;
map $SERVICE_API_SYSTEM $service_api_system {
volatile;

View File

@ -0,0 +1,2 @@
#!/bin/sh
envsubst '$MAP_HASH_BUCKET_SIZE,$COUNT_WORKER_CONNECTIONS' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf

View File

@ -0,0 +1,7 @@
#!/bin/sh
until cat /var/www/products/status.txt
do
echo "waiting for the storage to be ready"
sleep 5
done

View File

@ -745,11 +745,11 @@ namespace ASC.Core.Data
if (!string.IsNullOrEmpty(text))
{
q = q.Where(
u => u.FirstName.Contains(text, StringComparison.InvariantCultureIgnoreCase) ||
u.LastName.Contains(text, StringComparison.InvariantCultureIgnoreCase) ||
u.Title.Contains(text, StringComparison.InvariantCultureIgnoreCase) ||
u.Location.Contains(text, StringComparison.InvariantCultureIgnoreCase) ||
u.Email.Contains(text, StringComparison.InvariantCultureIgnoreCase));
u => u.FirstName.Contains(text) ||
u.LastName.Contains(text) ||
u.Title.Contains(text) ||
u.Location.Contains(text) ||
u.Email.Contains(text));
}
return q;