fix Docker run (#3229)

This commit is contained in:
Denys Vuika 2023-05-25 08:08:58 +01:00 committed by GitHub
parent 0328ea09da
commit 1e37931b97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 149 deletions

View File

@ -4,9 +4,9 @@ FROM node:16.13-alpine3.14 AS builder
WORKDIR /usr/src/alfresco WORKDIR /usr/src/alfresco
COPY package.json package.json COPY package.json package.json
# RUN mkdir -p ./licenses && \ RUN mkdir -p ./licenses && \
# yarn licenses list --production > ./licenses/licenses.txt && \ yarn licenses list --production > ./licenses/licenses.txt && \
# yarn licenses generate-disclaimer --production > ./licenses/disclaimer.txt yarn licenses generate-disclaimer --production > ./licenses/disclaimer.txt
# 2. Generate image # 2. Generate image
@ -46,12 +46,11 @@ ENV APP_CONFIG_ENABLE_FILE_AUTO_DOWNLOAD=true
ENV APP_CONFIG_FILE_AUTO_DOWNLOAD_SIZE_THRESHOLD_IN_MB=15 ENV APP_CONFIG_FILE_AUTO_DOWNLOAD_SIZE_THRESHOLD_IN_MB=15
COPY docker/default.conf.template /etc/nginx/templates/ COPY docker/default.conf.template /etc/nginx/templates/
COPY docker/docker-entrypoint.d/* /docker-entrypoint.d/
COPY dist/$PROJECT_NAME /usr/share/nginx/html/ COPY dist/$PROJECT_NAME /usr/share/nginx/html/
COPY dist/$PROJECT_NAME/app.config.json /etc/nginx/templates/app.config.json.template COPY dist/$PROJECT_NAME/app.config.json /etc/nginx/templates/app.config.json.template
COPY dist/$PROJECT_NAME/assets/app.extensions.json /etc/nginx/templates/app.extensions.json.template COPY dist/$PROJECT_NAME/assets/app.extensions.json /etc/nginx/templates/app.extensions.json.template
# COPY --from=builder /usr/src/alfresco/licenses /usr/share/nginx/html/ COPY --from=builder /usr/src/alfresco/licenses /usr/share/nginx/html/
USER root USER root
RUN chmod a+w -R /etc/nginx/conf.d RUN chmod a+w -R /etc/nginx/conf.d

View File

@ -1,15 +0,0 @@
#!/bin/sh
set -e
echo Running sed on "${NGINX_ENVSUBST_OUTPUT_DIR}/assets/app.extensions.json"
# modifies the "$ignoreReferenceList" property using a comma-delimited string
if [ -n "${APP_EXTENSIONS_IGNORE_REFS}" ]; then
echo "replace APP_EXTENSIONS_IGNORE_REFS"
replace="\/"
encoded=${APP_EXTENSIONS_IGNORE_REFS//\//$replace}
sed -e "s/\"$ignoreReferenceList\": \".*\"/\"$ignoreReferenceList\": \[${encoded}\]/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.extensions.json"
fi

View File

@ -1,111 +0,0 @@
#!/bin/sh
set -e
echo Running sed on "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
if [ -n "${APP_CONFIG_AUTH_TYPE}" ]; then
echo "replace APP_CONFIG_AUTH_TYPE"
sed -e "s/\"authType\": \".*\"/\"authType\": \"${APP_CONFIG_AUTH_TYPE}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_PROVIDER}"]; then
echo "replace APP_CONFIG_PROVIDER"
sed -e "s/\"providers\": \".*\"/\"providers\": \"${APP_CONFIG_PROVIDER}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_IDENTITY_HOST}" ]; then
echo "replace APP_CONFIG_IDENTITY_HOST"
replace="\/"
encodedIdentity=${APP_CONFIG_IDENTITY_HOST//\//$replace}
sed -e "s/\"identityHost\": \".*\"/\"identityHost\": \"$encodedIdentity\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_HOST}" ]; then
echo "replace APP_CONFIG_OAUTH2_HOST"
replace="\/"
encoded=${APP_CONFIG_OAUTH2_HOST//\//$replace}
sed -e "s/\"host\": \".*\"/\"host\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_CLIENTID}" ]; then
echo "replace APP_CONFIG_OAUTH2_CLIENTID"
sed -e "s/\"clientId\": \".*\"/\"clientId\": \"${APP_CONFIG_OAUTH2_CLIENTID}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_IMPLICIT_FLOW}" ]; then
echo "replace APP_CONFIG_OAUTH2_IMPLICIT_FLOW"
sed -e "s/\"implicitFlow\": [^,]*/\"implicitFlow\": ${APP_CONFIG_OAUTH2_IMPLICIT_FLOW}/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_SILENT_LOGIN}" ]; then
echo "replace APP_CONFIG_OAUTH2_SILENT_LOGIN"
sed -e "s/\"silentLogin\": [^,]*/\"silentLogin\": ${APP_CONFIG_OAUTH2_SILENT_LOGIN}/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI}" ]; then
echo "replace APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI"
replace="\/"
encoded=${APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI//\//$replace}
sed -e "s/\"redirectSilentIframeUri\": \".*\"/\"redirectSilentIframeUri\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_REDIRECT_LOGIN}" ]; then
echo "replace APP_CONFIG_OAUTH2_REDIRECT_LOGIN"
replace="\/"
encoded=${APP_CONFIG_OAUTH2_REDIRECT_LOGIN//\//$replace}
sed -e "s/\"redirectUri\": \".*\"/\"redirectUri\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [ -n "${APP_CONFIG_OAUTH2_REDIRECT_LOGOUT}" ]; then
echo "replace APP_CONFIG_OAUTH2_REDIRECT_LOGOUT"
replace="\/"
encoded=${APP_CONFIG_OAUTH2_REDIRECT_LOGOUT//\//$replace}
sed -e "s/\"redirectUriLogout\": \".*\"/\"redirectUriLogout\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [[ -n "${APP_CONFIG_BPM_HOST}" ]]; then
echo "replace APP_CONFIG_BPM_HOST"
replace="\/"
encoded=${APP_CONFIG_BPM_HOST//\//$replace}
sed -e "s/\"bpmHost\": \".*\"/\"bpmHost\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
if [[ -n "${APP_CONFIG_ECM_HOST}" ]]; then
echo "replace APP_CONFIG_ECM_HOST"
replace="\/"
encoded=${APP_CONFIG_ECM_HOST//\//$replace}
sed -e "s/\"ecmHost\": \".*\"/\"ecmHost\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi
# application specific ce replacements
if [ -n "${APP_BASE_SHARE_URL}" ]; then
echo "replace APP_BASE_SHARE_URL"
replace="\/"
encoded=${APP_BASE_SHARE_URL//\//$replace}
sed -e "s/\"baseShareUrl\": \".*\"/\"baseShareUrl\": \"${encoded}\"/g" \
-i "${NGINX_ENVSUBST_OUTPUT_DIR}/app.config.json"
fi

View File

@ -5,7 +5,7 @@ set -e
[[ "$BUILD_ENABLED" == "true" ]] && $(dirname $0)/build.sh [[ "$BUILD_ENABLED" == "true" ]] && $(dirname $0)/build.sh
env \ env \
PROJECT_NAME=app \ PROJECT_NAME=content-ce \
BASE_PATH=${BASE_PATH:-/workspace} \ BASE_PATH=${BASE_PATH:-/workspace} \
DOCKER_IMAGE_REPO=alfresco/alfresco-content-app \ DOCKER_IMAGE_REPO=alfresco/alfresco-content-app \
$(dirname $0)/run.sh $(dirname $0)/run.sh

View File

@ -2,25 +2,42 @@
set -e set -e
eval ALL_ARGUMENTS=("BASE_PATH"
"APP_BASE_SHARE_URL"
"APP_CONFIG_IDENTITY_HOST"
"APP_CONFIG_OAUTH2_HOST"
"APP_CONFIG_BPM_HOST"
"APP_CONFIG_ECM_HOST"
"APP_CONFIG_AUTH_TYPE"
"APP_CONFIG_OAUTH2_CLIENTID"
"APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI"
"APP_CONFIG_OAUTH2_IMPLICIT_FLOW"
"APP_CONFIG_OAUTH2_SILENT_LOGIN"
"APP_CONFIG_OAUTH2_REDIRECT_LOGIN"
"APP_CONFIG_OAUTH2_REDIRECT_LOGOUT"
"APP_CONFIG_PROVIDER"
"APP_CONFIG_APPS_DEPLOYED"
"APP_CONFIG_PLUGIN_MICROSOFT_ONLINE"
"APP_CONFIG_MICROSOFT_ONLINE_AUTHORITY"
"APP_CONFIG_MICROSOFT_ONLINE_CLIENTID"
"APP_CONFIG_MICROSOFT_ONLINE_OOI_URL"
"APP_CONFIG_MICROSOFT_ONLINE_REDIRECT"
"APP_CONFIG_PLUGIN_AOS",
"APP_CONFIG_PLUGIN_FOLDER_RULES",
"APP_CONFIG_PLUGIN_AI_SERVICE"
)
ALL_ARGUMENTS_LENGTH=${#ALL_ARGUMENTS[@]}
DOCKER_ARGS=""
for (( j=0; j<${ALL_ARGUMENTS_LENGTH}; j++ )); do
ARG="${ALL_ARGUMENTS[$j]}"
if [ -v "${ARG}" ]; then
DOCKER_ARGS="$DOCKER_ARGS --env $ARG=${!ARG}"
fi
done
HOST_PORT=8081 HOST_PORT=8081
CONTAINER_PORT=8080 CONTAINER_PORT=8080
docker rmi -f $DOCKER_IMAGE_REPO docker rmi -f $DOCKER_IMAGE_REPO
docker build --build-arg PROJECT_NAME=$PROJECT_NAME -t $DOCKER_IMAGE_REPO . docker build --build-arg PROJECT_NAME=$PROJECT_NAME -t $DOCKER_IMAGE_REPO .
echo "http://localhost:${HOST_PORT}${BASE_PATH}" echo "http://localhost:${HOST_PORT}${BASE_PATH}"
docker run --rm -it \ docker run --rm -it $DOCKER_ARGS --user 1000:1000 --publish $HOST_PORT:$CONTAINER_PORT $DOCKER_IMAGE_REPO
--env APP_CONFIG_PROVIDER=$APP_CONFIG_PROVIDER \
--env BASE_PATH=$BASE_PATH \
--env APP_CONFIG_AUTH_TYPE=$APP_CONFIG_AUTH_TYPE \
--env APP_CONFIG_IDENTITY_HOST=$APP_CONFIG_IDENTITY_HOST \
--env APP_CONFIG_OAUTH2_HOST=$APP_CONFIG_OAUTH2_HOST \
--env APP_CONFIG_OAUTH2_CLIENTID=$APP_CONFIG_OAUTH2_CLIENTID \
--env APP_CONFIG_OAUTH2_IMPLICIT_FLOW=$APP_CONFIG_OAUTH2_IMPLICIT_FLOW \
--env APP_CONFIG_OAUTH2_SILENT_LOGIN=$APP_CONFIG_OAUTH2_SILENT_LOGIN \
--env APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI=$APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI \
--env APP_CONFIG_OAUTH2_REDIRECT_LOGIN=$APP_CONFIG_OAUTH2_REDIRECT_LOGIN \
--env APP_CONFIG_OAUTH2_REDIRECT_LOGOUT=$APP_CONFIG_OAUTH2_REDIRECT_LOGOUT \
--env APP_CONFIG_BPM_HOST=$APP_CONFIG_BPM_HOST \
--env APP_CONFIG_ECM_HOST=$APP_CONFIG_ECM_HOST \
--env APP_BASE_SHARE_URL=$APP_BASE_SHARE_URL \
--env APP_EXTENSIONS_IGNORE_REFS=$APP_EXTENSIONS_IGNORE_REFS \
--user 1000:1000 --publish $HOST_PORT:$CONTAINER_PORT $DOCKER_IMAGE_REPO