Update etherpad to 2.2.4
There are 2.2.0 and 2.2.1 tags but no built releases and they don't show up in the changelog for 2.2.2 either. Thats fine we can ignore them and upgrade to latest (2.2.4) instead. The changelog for 2.2.4 can be found here: https://github.com/ether/etherpad-lite/blob/v2.2.4/CHANGELOG.md Notable this changes how plugins are loaded into the js shipped to the browser. We should confirm that our plugins are working as expected as part of this update. On the config management side of things there are some small updates to the Dockerfile to sync up with upstream changes to how etherpad is built. We also update the settings json file to configure log type. Note this change was only made to the normal settings file and not the docker settings file upstream so we match that in this change as well. Finally we also update our mod_rewrite rules in apache to prevent new javascript loading locations from being redirected to /p/ inappropriately. Previously we were redirecting foo.min.js to /p/foo.min.js which caused the server to return html instead of js which led to syntax errors. This then resulted in js errors from the ep_headings plugin. It appears this plugin is ancient and no longer maintained and seems to rely on require() functionality that was removed from etherpad in 2.2.2. We switch to the ep_headings2 plugin instead. This will allow us to file bugs against maintained software should problems persist. Fungi tested ep_headings2 against our production db content and things seem to work despite this issue existing [0]. We should upgrade carefully but it seems like things will likely be functional. We should also check if these redirect rules affect meetpad as well. But this can likely be done after the upgrade. [0] https://github.com/ether/ep_headings2/issues/4 Change-Id: I4a907b5170d3612f4525153a0a07c291d6481a92
This commit is contained in:
parent
8cde4966a7
commit
39d8d6ffb5
@ -28,7 +28,7 @@
|
||||
# stages of the multi stage build.
|
||||
ARG EP_DIR=/opt/etherpad-lite
|
||||
ARG SETTINGS=./settings.json.docker
|
||||
ARG ETHERPAD_PLUGINS="ep_headings"
|
||||
ARG ETHERPAD_PLUGINS="ep_headings2"
|
||||
|
||||
FROM node:22-bookworm-slim AS adminBuild
|
||||
ARG EP_DIR
|
||||
@ -40,10 +40,11 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
|
||||
apt-get -qq --no-install-recommends install ca-certificates git && \
|
||||
apt-get -qq clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
RUN npm install -g pnpm@9.0.4
|
||||
RUN git clone https://github.com/ether/etherpad-lite ${EP_DIR}
|
||||
RUN git checkout v2.1.1
|
||||
RUN cd ./admin && npm install -g pnpm@9.0.4 && pnpm install && pnpm run build --outDir ./dist
|
||||
RUN cd ./ui && pnpm install && pnpm run build --outDir ./dist
|
||||
RUN git checkout v2.2.4
|
||||
RUN pnpm install
|
||||
RUN pnpm run build:ui
|
||||
|
||||
|
||||
FROM node:22-bookworm-slim AS build
|
||||
@ -83,6 +84,14 @@ ARG ETHERPAD_PLUGINS
|
||||
# ETHERPAD_LOCAL_PLUGINS="../ep_my_plugin ../ep_another_plugin"
|
||||
ARG ETHERPAD_LOCAL_PLUGINS=
|
||||
|
||||
# github plugins to install while building the container. By default no plugins are
|
||||
# installed.
|
||||
# If given a value, it has to be a space-separated, quoted list of plugin names.
|
||||
#
|
||||
# EXAMPLE:
|
||||
# ETHERPAD_GITHUB_PLUGINS="ether/ep_plugin"
|
||||
ARG ETHERPAD_GITHUB_PLUGINS=
|
||||
|
||||
# Control whether abiword will be installed, enabling exports to DOC/PDF/ODT formats.
|
||||
# By default, it is not installed.
|
||||
# If given any value, abiword will be installed.
|
||||
@ -140,17 +149,19 @@ USER etherpad
|
||||
|
||||
RUN git clone https://github.com/ether/etherpad-lite ${EP_DIR}
|
||||
WORKDIR "${EP_DIR}"
|
||||
RUN git checkout v2.1.1
|
||||
RUN git checkout v2.2.4
|
||||
|
||||
FROM build AS development
|
||||
ARG ETHERPAD_PLUGINS
|
||||
|
||||
COPY --chown=etherpad:etherpad --from=adminBuild /opt/etherpad-lite/admin/dist ./src/templates/admin
|
||||
COPY --chown=etherpad:etherpad --from=adminBuild /opt/etherpad-lite/ui/dist ./src/static/oidc
|
||||
# This copy is not necessary as we clone and checkout in the build image
|
||||
# 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/static/oidc ./src/static/oidc
|
||||
|
||||
RUN bin/installDeps.sh && \
|
||||
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_LOCAL_PLUGINS}" ]; then \
|
||||
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_LOCAL_PLUGINS:+--path ${ETHERPAD_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}}; \
|
||||
fi
|
||||
|
||||
|
||||
@ -162,15 +173,16 @@ ARG ETHERPAD_PLUGINS
|
||||
ENV NODE_ENV=production
|
||||
ENV ETHERPAD_PRODUCTION=true
|
||||
|
||||
COPY --chown=etherpad:etherpad --from=adminBuild /opt/etherpad-lite/admin/dist ./src/templates/admin
|
||||
COPY --chown=etherpad:etherpad --from=adminBuild /opt/etherpad-lite/ui/dist ./src/static/oidc
|
||||
# This copy is not necessary as we clone and checkout in the build image
|
||||
# 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/static/oidc ./src/static/oidc
|
||||
|
||||
RUN bin/installDeps.sh && rm -rf ~/.npm && rm -rf ~/.local && rm -rf ~/.cache && \
|
||||
if [ ! -z "${ETHERPAD_PLUGINS}" ] || [ ! -z "${ETHERPAD_LOCAL_PLUGINS}" ]; then \
|
||||
pnpm run plugins i ${ETHERPAD_PLUGINS} ${ETHERPAD_LOCAL_PLUGINS:+--path ${ETHERPAD_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}}; \
|
||||
fi
|
||||
|
||||
|
||||
# Copy the configuration file.
|
||||
COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
|
||||
|
||||
|
@ -93,11 +93,6 @@
|
||||
group: 5001
|
||||
mode: '0440'
|
||||
|
||||
- name: Clean up from old ep_headings hack
|
||||
file:
|
||||
path: /etc/etherpad/node_modules
|
||||
state: absent
|
||||
|
||||
- name: Remove npm
|
||||
package:
|
||||
name:
|
||||
|
@ -68,13 +68,16 @@
|
||||
RewriteCond %{REQUEST_URI} !^/locales/
|
||||
RewriteCond %{REQUEST_URI} !^/locales.json
|
||||
RewriteCond %{REQUEST_URI} !^/admin
|
||||
RewriteCond %{REQUEST_URI} !^/p/
|
||||
RewriteCond %{REQUEST_URI} !^/static/
|
||||
RewriteCond %{REQUEST_URI} !^/pluginfw/
|
||||
RewriteCond %{REQUEST_URI} !^/javascripts/
|
||||
RewriteCond %{REQUEST_URI} !^/socket.io/
|
||||
RewriteCond %{REQUEST_URI} !^/ep/
|
||||
RewriteCond %{REQUEST_URI} !^/ep_etherpad-lite/
|
||||
RewriteCond %{REQUEST_URI} !^/minified/
|
||||
RewriteCond %{REQUEST_URI} !^/padbootstrap-.*\.min\.js$
|
||||
RewriteCond %{REQUEST_URI} !^/timeSliderBootstrap-.*\.min\.js$
|
||||
RewriteCond %{REQUEST_URI} !^/indexBootstrap-.*\.min\.js$
|
||||
RewriteCond %{REQUEST_URI} !^/api/
|
||||
RewriteCond %{REQUEST_URI} !^/ro/
|
||||
RewriteCond %{REQUEST_URI} !^/error/
|
||||
|
@ -658,6 +658,13 @@
|
||||
*/
|
||||
"loglevel": "INFO",
|
||||
|
||||
/*
|
||||
* The log layout type to use.
|
||||
*
|
||||
* Valid values: basic, colored
|
||||
*/
|
||||
"logLayoutType": "colored",
|
||||
|
||||
/* Override any strings found in locale directories */
|
||||
"customLocaleStrings": {},
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
repository: opendevorg/etherpad
|
||||
tags:
|
||||
- latest
|
||||
- v2.1.1
|
||||
- v2.2.4
|
||||
build_args:
|
||||
- EP_GID=5001
|
||||
files: ðerpad_files
|
||||
|
Loading…
Reference in New Issue
Block a user