diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 12770eca963..5e24437054b 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -4,7 +4,7 @@ # Multi-stage image: this step builds cozy-stack (and mailhog) -FROM golang:1.21 as build +FROM golang:1.21-bullseye as build WORKDIR /app # MailHog @@ -26,60 +26,46 @@ RUN ./scripts/build.sh dev # Multi-stage image: the main image -FROM debian:stretch-slim +FROM debian:bullseye-slim # cozy-stack ENV COZY_STACK_HOST=cozy.localhost \ COZY_STACK_PORT=8080 \ COZY_STACK_PATH=cozy-stack \ - COUCHDB_SRC_URL=https://dist.apache.org/repos/dist/release/couchdb/source/2.3.1/apache-couchdb-2.3.1.tar.gz \ - COUCHDB_SRC_SHA256=43eb8cec41eb52871bf22d35f3e2c2ce5b806ebdbce3594cf6b0438f2534227d \ - PATH="$PATH:/usr/local/couchdb/bin" + PATH="$PATH:/opt/couchdb/bin" ARG DEBIAN_FRONTEND=noninteractive RUN set -eux; apt-get update \ && apt-get install -y --no-install-recommends \ - build-essential \ ca-certificates \ curl \ - libicu57 \ - libmozjs185-1.0 \ - erlang-nox \ - erlang-reltool \ - erlang-dev \ - libicu-dev \ - libmozjs185-dev \ + apt-transport-https \ + gnupg \ openssl \ - fonts-lato \ + fonts-lato \ imagemagick \ git \ + && curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor > /usr/share/keyrings/couchdb-archive-keyring.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ bullseye main" > /etc/apt/sources.list.d/couchdb.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor > /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ + && apt update \ + && echo "couchdb couchdb/mode select standalone" | debconf-set-selections \ + && echo "couchdb couchdb/mode seen true" | debconf-set-selections \ + && echo "couchdb couchdb/bindaddress string 0.0.0.0" | debconf-set-selections \ + && echo "couchdb couchdb/bindaddress seen true" | debconf-set-selections \ + && echo "couchdb couchdb/adminpass password password" | debconf-set-selections \ + && echo "couchdb couchdb/adminpass seen true" | debconf-set-selections \ + && echo "couchdb couchdb/adminpass_again password password" | debconf-set-selections \ + && echo "couchdb couchdb/adminpass_again seen true" | debconf-set-selections \ + && echo "couchdb couchdb/cookie string elmo" | debconf-set-selections \ + && echo "couchdb couchdb/cookie seen true" | debconf-set-selections \ + && apt install -y --no-install-recommends couchdb=3.2.2* nodejs \ && rm -rf /var/lib/apt/lists/* \ - && mkdir /usr/src/couchdb \ - && curl -fsSL "$COUCHDB_SRC_URL" -o couchdb.tar.gz \ - && echo "$COUCHDB_SRC_SHA256 couchdb.tar.gz" | sha256sum -c - \ - && tar -xzf couchdb.tar.gz -C /usr/src/couchdb --strip-components=1 \ - && rm couchdb.tar.gz \ - && cd /usr/src/couchdb \ - && ./configure --disable-docs \ - && make release \ - && mv ./rel/couchdb /usr/local \ - && cd / \ - && rm -rf /usr/src/couchdb \ - && curl -fsSL https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-x64.tar.xz -o node-v12.9.1-linux-x64.tar.xz \ - && tar -xJf "node-v12.9.1-linux-x64.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ - && rm "node-v12.9.1-linux-x64.tar.xz" \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ && node --version \ # Cleanup - && apt-get purge -y \ - build-essential \ - erlang-dev \ - libicu-dev \ - libmozjs185-dev \ - make \ - && printf "[chttpd]\\nbind_address = 0.0.0.0\\n" \ - > /usr/local/couchdb/etc/local.ini \ && apt-get autoremove -y && apt-get clean \ && mkdir -p /data/cozy-app && mkdir -p /data/cozy-storage @@ -88,7 +74,7 @@ COPY --from=build \ /app/cozy-stack \ /app/scripts/docker-entrypoint.sh \ /app/scripts/cozy-app-dev.sh \ - /app/scripts/konnector-node-run.sh \ + /app/scripts/konnector-node16-run.sh \ /app/MailHog \ /usr/bin/ diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 226da8743db..4bc867a5f56 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/bash set -eu -couchdb 2> /dev/null 1> /dev/null & +/opt/couchdb/bin/couchdb 2> /dev/null 1> /dev/null & MailHog 2> /dev/null 1> /dev/null & if [ -f "/data/cozy-app/manifest.webapp" ]; then @@ -26,6 +26,9 @@ else fi fi -COZY_KONNECTORS_CMD="/usr/bin/konnector-node-run.sh" /usr/bin/cozy-app-dev.sh \ +COZY_KONNECTORS_CMD="/usr/bin/konnector-node16-run.sh" \ +COZY_ADMIN_HOST="127.0.0.1" \ +COUCHDB_URL="http://admin:password@localhost:5984/" \ +/usr/bin/cozy-app-dev.sh \ -d "${appdir}" \ -f /data/cozy-storage