mirror of
https://github.com/linuxserver/docker-hedgedoc.git
synced 2026-03-16 00:01:47 +08:00
Merge pull request #11 from linuxserver/db
remove deprecated db migration, update formatting
This commit is contained in:
commit
285a1d6072
108
Dockerfile
108
Dockerfile
@ -12,60 +12,60 @@ ARG DEBIAN_FRONTEND="noninteractive"
|
||||
ENV NODE_ENV production
|
||||
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY root/ /
|
||||
|
||||
@ -13,60 +13,60 @@ ARG DEBIAN_FRONTEND="noninteractive"
|
||||
ENV NODE_ENV production
|
||||
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY root/ /
|
||||
|
||||
108
Dockerfile.armhf
108
Dockerfile.armhf
@ -13,60 +13,60 @@ ARG DEBIAN_FRONTEND="noninteractive"
|
||||
ENV NODE_ENV production
|
||||
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
echo "**** install build packages ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
echo "**** install runtime *****" && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_12.x bionic main' > /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "**** install yarn repository ****" && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
fontconfig \
|
||||
fonts-noto \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
yarn && \
|
||||
echo "**** install hedgedoc ****" && \
|
||||
if [ -z ${HEDGEDOC_RELEASE+x} ]; then \
|
||||
HEDGEDOC_RELEASE=$(curl -sX GET "https://api.github.com/repos/hedgedoc/hedgedoc/releases/latest" \
|
||||
| jq -r '.tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/hedgedoc.tar.gz -L \
|
||||
"https://github.com/hedgedoc/hedgedoc/releases/download/${HEDGEDOC_RELEASE}/hedgedoc-${HEDGEDOC_RELEASE}.tar.gz" && \
|
||||
mkdir -p \
|
||||
/opt/hedgedoc && \
|
||||
tar xf /tmp/hedgedoc.tar.gz -C \
|
||||
/opt/hedgedoc --strip-components=1 && \
|
||||
cd /opt/hedgedoc && \
|
||||
bin/setup && \
|
||||
echo "**** cleanup ****" && \
|
||||
yarn cache clean && \
|
||||
apt-get -y purge \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libicu60 \
|
||||
libssl-dev \
|
||||
make && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY root/ /
|
||||
|
||||
@ -261,4 +261,5 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **03.05.21:** - Remove deprecated sequalizerc step.
|
||||
* **22.12.20:** - Initial release
|
||||
|
||||
@ -85,4 +85,5 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "03.05.21:", desc: "Remove deprecated sequalizerc step." }
|
||||
- { date: "22.12.20:", desc: "Initial release" }
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
var path = require('path');
|
||||
|
||||
module.exports = {
|
||||
'config': '/config/config.json',
|
||||
'migrations-path': path.resolve('lib', 'migrations'),
|
||||
'models-path': path.resolve('lib', 'models')
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
# copy config.json if doesn't exist
|
||||
[[ ! -f /config/config.json ]] && \
|
||||
cp /defaults/config.json /config/config.json
|
||||
cp /defaults/config.json /config/config.json
|
||||
|
||||
|
||||
# create symlinks
|
||||
@ -13,46 +13,43 @@ symlinks=( \
|
||||
/opt/hedgedoc/public/default.md
|
||||
)
|
||||
for i in "${symlinks[@]}"; do
|
||||
# if config file is present just remove container one and symlink
|
||||
[[ -e "$i" && ! -L "$i" && -e /config/"$(basename "$i")" ]] && \
|
||||
rm -Rf "$i" && \
|
||||
ln -s /config/"$(basename "$i")" "$i"
|
||||
# if config file is not present move it before symlinking
|
||||
[[ -e "$i" && ! -L "$i" ]] && \
|
||||
mv "$i" /config/"$(basename "$i")" && \
|
||||
ln -s /config/"$(basename "$i")" "$i"
|
||||
# if config file is present just remove container one and symlink
|
||||
[[ -e "$i" && ! -L "$i" && -e /config/"$(basename "$i")" ]] && \
|
||||
rm -Rf "$i" && \
|
||||
ln -s /config/"$(basename "$i")" "$i"
|
||||
# if config file is not present move it before symlinking
|
||||
[[ -e "$i" && ! -L "$i" ]] && \
|
||||
mv "$i" /config/"$(basename "$i")" && \
|
||||
ln -s /config/"$(basename "$i")" "$i"
|
||||
done
|
||||
|
||||
|
||||
# check for the mysql endpoint for 30 seconds if user is using our env vars
|
||||
if [ -n "${DB_HOST+x}" ]; then
|
||||
END=$((SECONDS+30))
|
||||
while [ ${SECONDS} -lt ${END} ]; do
|
||||
if /bin/nc -w1 ${DB_HOST} ${DB_PORT} > /dev/null 2>&1; then
|
||||
[ ! -z "${RUN}" ] && break
|
||||
RUN="RAN"
|
||||
# we sleep here again due to first run init on DB containers
|
||||
[ ! -f /dbwait.lock ] && sleep 5
|
||||
else
|
||||
echo "Waiting for Mysql service"
|
||||
sleep 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
END=$((SECONDS+30))
|
||||
while [ ${SECONDS} -lt ${END} ]; do
|
||||
if /bin/nc -w1 ${DB_HOST} ${DB_PORT} > /dev/null 2>&1; then
|
||||
[ ! -z "${RUN}" ] && break
|
||||
RUN="RAN"
|
||||
# we sleep here again due to first run init on DB containers
|
||||
[ ! -f /dbwait.lock ] && sleep 5
|
||||
else
|
||||
echo "Waiting for Mysql service"
|
||||
sleep 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
# use our db settings file
|
||||
cp /defaults/sequelizerc /opt/hedgedoc/.sequelizerc
|
||||
|
||||
# migration from codimd
|
||||
if [ -f "/config/codimd.sqlite" ] && [ ! -f "/config/hedgedoc.sqlite" ]; then
|
||||
echo "Migrating codimd sqlite db to hedgedoc"
|
||||
mv /config/codimd.sqlite /config/hedgedoc.sqlite
|
||||
echo "Migrating codimd sqlite db to hedgedoc"
|
||||
mv /config/codimd.sqlite /config/hedgedoc.sqlite
|
||||
fi
|
||||
|
||||
# permissions
|
||||
chown -R abc:abc \
|
||||
/config
|
||||
/config
|
||||
|
||||
# set lockfile to avoid DB waits for this specific container
|
||||
touch /dbwait.lock
|
||||
|
||||
@ -2,20 +2,17 @@
|
||||
|
||||
# if user is using our env variables set the DB_URL
|
||||
[[ -n ${DB_HOST+x} ]] && \
|
||||
export CMD_DB_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
|
||||
export CMD_DB_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
|
||||
|
||||
# set env var for sqlite if db url unset
|
||||
[[ -z ${CMD_DB_URL+x} ]] && \
|
||||
export CMD_DB_URL="sqlite:///config/hedgedoc.sqlite"
|
||||
export CMD_DB_URL="sqlite:///config/hedgedoc.sqlite"
|
||||
# set config path
|
||||
[[ -z ${CMD_CONFIG_FILE+x} ]] && \
|
||||
export CMD_CONFIG_FILE="/config/config.json"
|
||||
|
||||
cd /opt/hedgedoc || :
|
||||
|
||||
# run database migrations
|
||||
s6-setuidgid abc ./node_modules/sequelize-cli/lib/sequelize db:migrate || exit
|
||||
|
||||
# run program
|
||||
exec \
|
||||
s6-setuidgid abc node app.js
|
||||
s6-setuidgid abc node app.js
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user