| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:d938ff3d4eee15d8600de84bf85eac6ecd0f20bc92dfe305dafbff0bdc974c0f in / |
| CMD ["/bin/bash"] |
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN /bin/sh -c echo 'Acquire::http {No-Cache=True;};' > /etc/apt/apt.conf.d/no-cache && echo 'APT::Install-Recommends "0"; APT::Install-Suggests "0";' > /etc/apt/apt.conf.d/01norecommend && echo 'Dir::Cache { srcpkgcache ""; pkgcache ""; }' > /etc/apt/apt.conf.d/02nocache && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/02compress-indexes # buildkit |
| SHELL [/bin/bash -c] |
| RUN /bin/bash -c apt -y update && apt -y --no-install-recommends install ca-certificates curl dirmngr git gpg gpg-agent wget unzip zip software-properties-common build-essential make gcc g++ sudo cron dos2unix tini attr && curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list && apt -y update && apt -y --no-install-recommends install supervisor dumb-init iputils-ping telnet netcat-openbsd lsof net-tools openssl dnsutils rsync bind9-host stress pv fio iotop nethogs crudini xmlstarlet moreutils jq pwgen swaks vim nano cmake pkg-config openssh-client uuid less zip file apache2 libapache2-mod-perl2 apache2-dev nginx-full optipng pngquant jpegoptim sqlite3 mysql-client-8.0 redis-tools postgresql-client-16 ldap-utils gettext imagemagick graphicsmagick libcurl4 libcurl4-openssl-dev libexpat1-dev libffi-dev libgdbm-dev libicu-dev libmysqlclient-dev libncurses5-dev libpq-dev libre2-dev libreadline-dev libssl-dev libxml2-dev libxslt-dev libyaml-dev zlib1g-dev libmcrypt-dev libgmp-dev libfreetype6-dev libjpeg-dev libjpeg-turbo8-dev libpng-dev chrpath libxft-dev libfontconfig1-dev libkrb5-dev libxslt1-dev libldap2-dev libsasl2-dev libtool libvips libzmq3-dev locales-all locales libmagic1 xmlsec1 perl libimage-exiftool-perl python3-dev python3-pip python3-setuptools python3-venv ghostscript libgs-dev ffmpeg x264 x265 && rm -rf /var/cache/apt /var/lib/apt/lists # buildkit |
| ARG NODE_VERSION=24.19.0 |
| RUN |1 NODE_VERSION=24.19.0 /bin/bash -c mkdir -p /usr/local/node-$NODE_VERSION && curl -L https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz | tar zxf - --strip-components 1 -C /usr/local/node-$NODE_VERSION # buildkit |
| RUN |1 NODE_VERSION=24.19.0 /bin/bash -c curl https://downloads.mongodb.com/compass/mongodb-mongosh_2.9.2_amd64.deb -o /tmp/mongosh.deb && dpkg -i /tmp/mongosh.deb && rm /tmp/mongosh.deb && curl https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.11.0.deb -o /tmp/mongotools.deb && dpkg -i /tmp/mongotools.deb && rm /tmp/mongotools.deb # buildkit |
| RUN |1 NODE_VERSION=24.19.0 /bin/bash -c curl -L https://github.com/tianon/gosu/releases/download/1.19/gosu-amd64 -o /usr/local/bin/gosu && chmod +x /usr/local/bin/gosu # buildkit |
| ARG YQVERSION=4.53.3 |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c curl -sL https://github.com/mikefarah/yq/releases/download/v${YQVERSION}/yq_linux_amd64 -o /usr/bin/yq && chmod +x /usr/bin/yq # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c userdel --remove ubuntu && adduser --uid 1000 --disabled-login --gecos 'Cloudron' cloudron && passwd -d cloudron # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c addgroup --gid 500 --system media && usermod -a -G media cloudron && usermod -a -G media www-data # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c echo "set noswapfile" >> /root/.vimrc && gosu cloudron:cloudron bash -c 'echo "set noswapfile" >> /home/cloudron/.vimrc' && echo "unset historylog" >> /etc/nanorc # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c update-locale LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_ALL=en_US.UTF-8 # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c for dir in .cache .config .node-gyp .npm .mongodb .ssh .yarn .local; do rm -rf /root/${dir} && ln -sf /run/root${dir} /root/${dir} && mkdir /run/root${dir}; rm -rf /home/cloudron/${dir} && ln -sf /run/cloudron${dir} /home/cloudron/${dir} && mkdir /run/cloudron${dir} && chown --no-dereference cloudron:cloudron /home/cloudron/${dir}; chown cloudron:cloudron /run/cloudron${dir}; done # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c for file in .bash_history .dbshell .inputrc .irb_history .mongorc.js .mysql_history .psql_history .mongoshrc.js .yarnrc; do ln -sf /run/root${file} /root/${file}; ln -sf /run/cloudron${file} /home/cloudron/${file} && chown --no-dereference cloudron:cloudron /home/cloudron/${file}; done # buildkit |
| COPY cloudron_addons /usr/local/cloudron_addons # buildkit |
| RUN |2 NODE_VERSION=24.19.0 YQVERSION=4.53.3 /bin/bash -c echo -e "\nsource /usr/local/cloudron_addons\n\n[[ -f /app/data/.bashrc ]] && source /app/data/.bashrc\n" >> /root/.bashrc # buildkit |
| ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONIOENCODING=utf-8 MALLOC_ARENA_MAX=2 MALLOC_TRIM_THRESHOLD_=131072 NODE_ENV=production DEEPTUTOR_IGNORE_PROCESS_ENV_OVERRIDES=1 DEEPTUTOR_HOME=/app |
| ENV PATH=/venv/bin:/usr/local/node-24.19.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| WORKDIR /app/code |
| RUN /bin/bash -c update-ca-certificates >/dev/null 2>&1 || true ; mkdir -p /etc/apt/apt.conf.d /etc/apt/sources.list.d ; for f in /etc/apt/sources.list /etc/apt/sources.list.d/*.list; do [ -f "$f" ] || continue; sed -i -E 's|^deb (http)|deb [trusted=yes] \1|; s|^deb \[([^]]+)\] (http)|deb [\1 trusted=yes] \2|' "$f" ; done ; printf 'APT::Get::AllowUnauthenticated "true";\nAPT::Get::AllowInsecureRepositories "true";\nAcquire::Check-Valid-Until "false";\nAcquire::Check-Date "false";\nAcquire::AllowReleaseInfoChange::Suite "true";\nAcquire::AllowReleaseInfoChange::Version "true";\nAcquire::https::Verify-Peer "false";\nAcquire::https::Verify-Host "false";\n' > /etc/apt/apt.conf.d/99cloudron-apt-bypass ; apt-get clean 2>/dev/null || true ; rm -rf /var/lib/apt/lists/* ; apt-get update || true ; apt-get install -y --no-install-recommends --allow-change-held-packages --allow-unauthenticated ne && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/99cloudron-apt-bypass # buildkit |
| RUN /bin/bash -c ln -sf /usr/bin/python3 /usr/local/bin/python && python --version | head -1 # buildkit |
| RUN /bin/bash -c node --version | head -1 && npm --version | head -1 # buildkit |
| COPY /venv /venv # buildkit |
| RUN /bin/bash -c python --version | head -1 && pip --version | head -1 && python -c "import deeptutor, sys; print('sys.path[0]:', sys.path[0]); print('deeptutor version:', getattr(deeptutor, '__version__', 'unknown'), 'from', deeptutor.__file__)" # buildkit |
| RUN /bin/bash -c mkdir -p /app/code/deeptutor /app/code/deeptutor_cli # buildkit |
| COPY /src/deeptutor/ /app/code/deeptutor/ # buildkit |
| COPY /src/deeptutor_cli/ /app/code/deeptutor_cli/ # buildkit |
| COPY /src/pyproject.toml /app/code/pyproject.toml # buildkit |
| COPY /src/requirements/ /app/code/requirements/ # buildkit |
| RUN /bin/bash -c ln -sf /app/data /app/code/data # buildkit |
| COPY /src/web /app/code/web # buildkit |
| RUN /bin/bash -c mkdir -p /app/code/web/.next/cache /app/code/defaults /app/data /app/data/system /app/data/user /app/data/users /app/data/control-ui /app/data/logs /run/app /etc/supervisor/conf.d # buildkit |
| COPY defaults /app/code/defaults # buildkit |
| COPY supervisor/supervisord.conf /etc/supervisor/supervisord.conf # buildkit |
| COPY supervisor/programs.conf /etc/supervisor/conf.d/programs.conf # buildkit |
| COPY start.sh /app/code/start.sh # buildkit |
| COPY start-backend.sh /app/code/start-backend.sh # buildkit |
| COPY start-frontend.sh /app/code/start-frontend.sh # buildkit |
| RUN /bin/bash -c chmod +x /app/code/start.sh /app/code/start-backend.sh /app/code/start-frontend.sh && chmod 644 /etc/supervisor/supervisord.conf /etc/supervisor/conf.d/programs.conf && chown -R cloudron:cloudron /app/code/web /app/code/defaults /app/data /run/app 2>/dev/null || true # buildkit |
| CMD ["/app/code/start.sh"] |