diff --git a/Dockerfile b/Dockerfile index f5e1689..b1d475f 100644 --- a/Dockerfile +++ b/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/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 4f6236e..71833b1 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -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/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 374a62c..a8dd95d 100644 --- a/Dockerfile.armhf +++ b/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/ / diff --git a/README.md b/README.md index 067a1f3..dc61c13 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/readme-vars.yml b/readme-vars.yml index b72eb3a..d22c0c1 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -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" } diff --git a/root/defaults/sequelizerc b/root/defaults/sequelizerc deleted file mode 100644 index afd3d75..0000000 --- a/root/defaults/sequelizerc +++ /dev/null @@ -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') -} diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 28831ec..f72c784 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -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 diff --git a/root/etc/services.d/hedgedoc/run b/root/etc/services.d/hedgedoc/run index 8368029..5cc38fa 100644 --- a/root/etc/services.d/hedgedoc/run +++ b/root/etc/services.d/hedgedoc/run @@ -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