From 1e37931b97129b9ea9fe4f7fce48f41bbedbf02f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 25 May 2023 08:08:58 +0100 Subject: [PATCH] fix Docker run (#3229) --- Dockerfile | 9 +- .../30-sed-on-app-extensions.sh | 15 --- .../30-sed-on-appconfig.sh | 111 ------------------ docker/run-content-ce.sh | 2 +- docker/run.sh | 51 +++++--- 5 files changed, 39 insertions(+), 149 deletions(-) delete mode 100755 docker/docker-entrypoint.d/30-sed-on-app-extensions.sh delete mode 100755 docker/docker-entrypoint.d/30-sed-on-appconfig.sh diff --git a/Dockerfile b/Dockerfile index 774c79da0..f9ac5e94c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,9 +4,9 @@ FROM node:16.13-alpine3.14 AS builder WORKDIR /usr/src/alfresco COPY package.json package.json -# RUN mkdir -p ./licenses && \ -# yarn licenses list --production > ./licenses/licenses.txt && \ -# yarn licenses generate-disclaimer --production > ./licenses/disclaimer.txt +RUN mkdir -p ./licenses && \ + yarn licenses list --production > ./licenses/licenses.txt && \ + yarn licenses generate-disclaimer --production > ./licenses/disclaimer.txt # 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 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/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 --from=builder /usr/src/alfresco/licenses /usr/share/nginx/html/ +COPY --from=builder /usr/src/alfresco/licenses /usr/share/nginx/html/ USER root RUN chmod a+w -R /etc/nginx/conf.d diff --git a/docker/docker-entrypoint.d/30-sed-on-app-extensions.sh b/docker/docker-entrypoint.d/30-sed-on-app-extensions.sh deleted file mode 100755 index 8605eee2e..000000000 --- a/docker/docker-entrypoint.d/30-sed-on-app-extensions.sh +++ /dev/null @@ -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 diff --git a/docker/docker-entrypoint.d/30-sed-on-appconfig.sh b/docker/docker-entrypoint.d/30-sed-on-appconfig.sh deleted file mode 100755 index 99c07c3a1..000000000 --- a/docker/docker-entrypoint.d/30-sed-on-appconfig.sh +++ /dev/null @@ -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 diff --git a/docker/run-content-ce.sh b/docker/run-content-ce.sh index c28a968b2..8498486cd 100755 --- a/docker/run-content-ce.sh +++ b/docker/run-content-ce.sh @@ -5,7 +5,7 @@ set -e [[ "$BUILD_ENABLED" == "true" ]] && $(dirname $0)/build.sh env \ - PROJECT_NAME=app \ + PROJECT_NAME=content-ce \ BASE_PATH=${BASE_PATH:-/workspace} \ DOCKER_IMAGE_REPO=alfresco/alfresco-content-app \ $(dirname $0)/run.sh diff --git a/docker/run.sh b/docker/run.sh index 7d0c9174b..92209f476 100755 --- a/docker/run.sh +++ b/docker/run.sh @@ -2,25 +2,42 @@ 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 CONTAINER_PORT=8080 docker rmi -f $DOCKER_IMAGE_REPO docker build --build-arg PROJECT_NAME=$PROJECT_NAME -t $DOCKER_IMAGE_REPO . echo "http://localhost:${HOST_PORT}${BASE_PATH}" -docker run --rm -it \ - --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 +docker run --rm -it $DOCKER_ARGS --user 1000:1000 --publish $HOST_PORT:$CONTAINER_PORT $DOCKER_IMAGE_REPO