Merge pull request #11 from linuxserver/db

remove deprecated db migration, update formatting
This commit is contained in:
saarg 2021-05-04 07:55:39 +02:00 committed by GitHub
commit 285a1d6072
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 192 additions and 203 deletions

View File

@ -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/ /

View File

@ -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/ /

View File

@ -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/ /

View File

@ -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

View File

@ -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" }

View File

@ -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')
}

View File

@ -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

View File

@ -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