FROM debian:bookworm RUN DEBIAN_FRONTEND=noninteractive apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get upgrade -y RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget gpg RUN echo "deb http://deb.debian.org/debian/ bullseye main contrib non-free" > /etc/apt/sources.list && \ echo "deb http://security.debian.org/debian-security bullseye-security main" >> /etc/apt/sources.list && \ echo "deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list RUN DEBIAN_FRONTEND=noninteractive apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales libffi-dev \ libssl-dev default-libmysqlclient-dev ca-certificates libpq-dev libjpeg62 libjpeg-dev \ libpng-dev libpng-dev build-essential git mercurial build-essential \ libbz2-dev libsqlite3-dev libreadline-dev zlib1g-dev libncurses5-dev \ libgdbm-dev libgd-dev cron git subversion vim nano mc htop procps \ dropbear gettext wget redis-server memcached supervisor curl ssh \ mariadb-client postgresql-client-13 postgresql-13-postgis-3-scripts bind9-host dnsutils nginx nginx-extras libnginx-mod-http-image-filter \ libxml2-dev libxslt1-dev openssh-sftp-server links2 lynx \ imagemagick libmagick++-6.q16-dev libmagick++-6.q16hdri-dev libmagickwand-dev ncdu libsodium-dev \ python3 python3-pip python3-virtualenv \ libcurl4-openssl-dev python-dev libproj-dev gdal-bin libmemcached-dev swig mutt \ ffmpeg libyaml-dev libc-client2007e-dev libonig-dev libkrb5-dev dialog \ whiptail tmux rsync nmap libzip-dev libfreetype6-dev \ jpegoptim optipng pngquant gifsicle webp libvpx-dev libwebp-dev jq inotify-tools ripgrep WORKDIR /srv RUN useradd -d /srv app -s /bin/bash RUN usermod -G crontab -a app RUN rm /etc/localtime RUN ln -s /usr/share/zoneinfo/Europe/Prague /etc/localtime ADD /etc/locale.gen /etc/ RUN locale-gen ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 ENV TERM xterm ############# # Techs ############# ## Node.js WORKDIR /usr/src ADD build_node.sh /usr/local/bin/build_node.sh # 2023/08 RUN build_node.sh 19.9.0 RUN build_node.sh 18.17.1 RUN build_node.sh 20.5.1 RUN build_node.sh 20.9.0 RUN build_node.sh 21.2.0 ## Python WORKDIR /usr/src ADD build_python.sh /usr/local/bin/build_python.sh # 2023/08 RUN build_python.sh 3.10.12 RUN build_python.sh 3.10.13 RUN build_python.sh 3.11.4 RUN build_python.sh 3.11.6 RUN build_python.sh 3.12.0 ## PHP 8 ADD build_php8.sh /usr/local/bin/build_php8.sh # 2023/08 RUN build_php8.sh 8.1.21 RUN build_php8.sh 8.1.25 RUN build_php8.sh 8.2.7 RUN build_php8.sh 8.2.12 ## Ruby WORKDIR /usr/src ADD build_ruby.sh /usr/local/bin/build_ruby.sh # 2023/08 RUN build_ruby.sh 3.1.4 RUN build_ruby.sh 3.2.2 ## Deno ADD build_deno.sh /usr/local/bin/build_deno.sh # 2023/08 RUN build_deno.sh 1.36.1 RUN build_deno.sh 1.38.2 ############# ## Support tools and miscellaneous stuff RUN rm -f /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/* ADD /scripts/enable_redis.sh /usr/local/bin/enable-redis ADD /scripts/enable_memcached.sh /usr/local/bin/enable-memcached RUN chmod 755 /usr/local/bin/* ADD /etc/supervisord.conf /etc/supervisor/supervisord.conf ADD /examples /opt/examples ADD /etc/bashrc_local /opt/etc/bashrc_local ADD /etc/bash_profile /opt/etc/bash_profile ADD /etc/vimrc /opt/etc/vimrc RUN mkdir -p /opt/etc/bashrc RUN mkdir -p /opt/etc/appinit ADD /etc/bashrc/common.sh /opt/etc/bashrc/ ADD /etc/nginx.conf /etc/nginx/nginx.conf RUN rmdir /var/lib/nginx RUN ln -s /srv/var/nginx /var/lib/nginx RUN chown app:app /var/log/nginx -R RUN chown app:app /home -R # Start script ADD /start.sh /start.sh RUN chmod 755 /start.sh ## Roští script RUN apt-get install -y fish ADD ./gen_rosti.fish /usr/local/bin/ ADD ./rosti.tmpl.sh /usr/src/ ADD ./Dockerfile /usr/src/ RUN cd /usr/src && /usr/local/bin/gen_rosti.fish > /usr/local/bin/rosti && chmod 755 /usr/local/bin/rosti ## Cleaning RUN apt-get clean && rm -rf /usr/src/* VOLUME /srv WORKDIR /srv EXPOSE 8000 22 ENTRYPOINT ["/start.sh"]