mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-20 07:35:05 -04:00
Fix installation of local plugins
This commit is contained in:
parent
d61578d680
commit
b3a0c3d426
3 changed files with 71 additions and 7 deletions
24
Dockerfile
24
Dockerfile
|
@ -134,22 +134,28 @@ FROM build_${BUILD_ENV} AS development
|
||||||
|
|
||||||
ARG ETHERPAD_PLUGINS=
|
ARG ETHERPAD_PLUGINS=
|
||||||
ARG ETHERPAD_LOCAL_PLUGINS=
|
ARG ETHERPAD_LOCAL_PLUGINS=
|
||||||
|
ARG ETHERPAD_LOCAL_PLUGINS_ENV=
|
||||||
ARG ETHERPAD_GITHUB_PLUGINS=
|
ARG ETHERPAD_GITHUB_PLUGINS=
|
||||||
|
|
||||||
COPY --chown=etherpad:etherpad ./src/ ./src/
|
COPY --chown=etherpad:etherpad ./src/ ./src/
|
||||||
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/ templates/admin./src/templates/admin
|
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/ templates/admin./src/templates/admin
|
||||||
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc
|
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc
|
||||||
|
|
||||||
|
COPY --chown=etherpad:etherpad ./local_plugin[s] ./local_plugins/
|
||||||
|
|
||||||
|
RUN bash -c ./bin/installLocalPlugins.sh
|
||||||
|
|
||||||
RUN bin/installDeps.sh && \
|
RUN bin/installDeps.sh && \
|
||||||
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_LOCAL_PLUGINS}" ] || [ ! -z "${ETHERPAD_GITHUB_PLUGINS}" ]; then \
|
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_GITHUB_PLUGINS}" ]; then \
|
||||||
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_LOCAL_PLUGINS:+--path ${ETHERPAD_LOCAL_PLUGINS}} ${ETHERPAD_GITHUB_PLUGINS:+--github ${ETHERPAD_GITHUB_PLUGINS}}; \
|
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_GITHUB_PLUGINS:+--github ${ETHERPAD_GITHUB_PLUGINS}}; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
FROM build_${BUILD_ENV} AS production
|
FROM build_${BUILD_ENV} AS production
|
||||||
|
|
||||||
ARG ETHERPAD_PLUGINS=
|
ARG ETHERPAD_PLUGINS=
|
||||||
ARG ETHERPAD_LOCAL_PLUGINS=
|
ARG ETHERPAD_LOCAL_PLUGINS=
|
||||||
|
ARG ETHERPAD_LOCAL_PLUGINS_ENV=
|
||||||
ARG ETHERPAD_GITHUB_PLUGINS=
|
ARG ETHERPAD_GITHUB_PLUGINS=
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
@ -159,10 +165,14 @@ COPY --chown=etherpad:etherpad ./src ./src
|
||||||
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/templates/admin ./src/templates/admin
|
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/templates/admin ./src/templates/admin
|
||||||
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc
|
COPY --chown=etherpad:etherpad --from=adminbuild /opt/etherpad-lite/src/static/oidc ./src/static/oidc
|
||||||
|
|
||||||
RUN bin/installDeps.sh && rm -rf ~/.npm && rm -rf ~/.local && rm -rf ~/.cache && \
|
COPY --chown=etherpad:etherpad ./local_plugin[s] ./local_plugins/
|
||||||
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_LOCAL_PLUGINS}" ] || [ ! -z "${ETHERPAD_GITHUB_PLUGINS}" ]; then \
|
|
||||||
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_LOCAL_PLUGINS:+--path ${ETHERPAD_LOCAL_PLUGINS}} ${ETHERPAD_GITHUB_PLUGINS:+--github ${ETHERPAD_GITHUB_PLUGINS}}; \
|
RUN bash -c ./bin/installLocalPlugins.sh
|
||||||
fi
|
|
||||||
|
RUN bin/installDeps.sh && \
|
||||||
|
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_GITHUB_PLUGINS}" ]; then \
|
||||||
|
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_GITHUB_PLUGINS:+--github ${ETHERPAD_GITHUB_PLUGINS}}; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Copy the configuration file.
|
# Copy the configuration file.
|
||||||
COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
|
COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
|
||||||
|
|
51
bin/installLocalPlugins.sh
Executable file
51
bin/installLocalPlugins.sh
Executable file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
trim() {
|
||||||
|
local var="$*"
|
||||||
|
# remove leading whitespace characters
|
||||||
|
var="${var#"${var%%[![:space:]]*}"}"
|
||||||
|
# remove trailing whitespace characters
|
||||||
|
var="${var%"${var##*[![:space:]]}"}"
|
||||||
|
printf '%s' "$var"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move to the Etherpad base directory.
|
||||||
|
MY_DIR=$(cd "${0%/*}" && pwd -P) || exit 1
|
||||||
|
cd "${MY_DIR}/.." || exit 1
|
||||||
|
|
||||||
|
# Source constants and useful functions
|
||||||
|
. bin/functions.sh
|
||||||
|
|
||||||
|
PNPM_OPTIONS=
|
||||||
|
if [ ! -z "${NODE_ENV-}" ]; then
|
||||||
|
if [ "$NODE_ENV" == 'production' ]; then
|
||||||
|
PNPM_OPTIONS='--prod'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${ETHERPAD_LOCAL_PLUGINS_ENV-}" ]; then
|
||||||
|
if [ "$ETHERPAD_LOCAL_PLUGINS_ENV" == 'production' ]; then
|
||||||
|
PNPM_OPTIONS='--prod'
|
||||||
|
elif [ "$ETHERPAD_LOCAL_PLUGINS_ENV" == 'development' ]; then
|
||||||
|
PNPM_OPTIONS='-D'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${ETHERPAD_LOCAL_PLUGINS}" ]; then
|
||||||
|
readarray -d ' ' plugins <<< "${ETHERPAD_LOCAL_PLUGINS}"
|
||||||
|
for plugin in "${plugins[@]}"; do
|
||||||
|
plugin=$(trim "$plugin")
|
||||||
|
if [ -d "local_plugins/${plugin}" ]; then
|
||||||
|
echo "Installing plugin: '${plugin}'"
|
||||||
|
pnpm install -w ${PNPM_OPTIONS:-} "local_plugins/${plugin}/"
|
||||||
|
else
|
||||||
|
( echo "Error. Directory 'local_plugins/${plugin}' for local plugin " \
|
||||||
|
"'${plugin}' missing" >&2 )
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo 'No local plugings to install.'
|
||||||
|
fi
|
3
local_plugins/.gitignore
vendored
Normal file
3
local_plugins/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# ignore everything
|
||||||
|
*
|
||||||
|
!.gitignore
|
Loading…
Add table
Add a link
Reference in a new issue