Dockerfile 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. FROM ubuntu:latest
  2. LABEL maintainer="Kassapa"
  3. ENV DEBIAN_FRONTEND="noninteractive"
  4. RUN apt update
  5. RUN apt -y upgrade
  6. RUN apt install -y lsb-release apt-utils \
  7. debian-keyring debian-archive-keyring apt-transport-https software-properties-common curl wget gnupg
  8. RUN add-apt-repository -y ppa:ondrej/php
  9. # https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
  10. RUN add-apt-repository -y ppa:deadsnakes/ppa
  11. # https://launchpad.net/~ondrej/+archive/ubuntu/php
  12. RUN apt install -y zip unzip vim locales locales-all rsync openssh-client telnet sshpass pwgen screen \
  13. tzdata tree asciidoc doxygen imagemagick ffmpeg fonts-dejavu-extra texlive-full \
  14. git cmake build-essential ninja-build \
  15. php8.1-fpm php8.1-mbstring php8.1-xml php8.1-bcmath php8.1-curl php8.1-zip \
  16. php8.1-mysql php8.1-pgsql php8.1-sqlite3 php8.1-redis php8.1-mongodb php8.1-amqp php8.1-zmq \
  17. php8.1-imagick php8.1-gd php8.1-intl php8.1-soap \
  18. php8.4-fpm php8.4-mbstring php8.4-xml php8.4-bcmath php8.4-curl php8.4-zip \
  19. php8.4-mysql php8.4-pgsql php8.4-sqlite3 php8.4-redis php8.4-mongodb php8.4-amqp php8.4-zmq \
  20. php8.4-imagick php8.4-gd php8.4-intl php8.4-soap \
  21. python3.13-venv python3.13-dev
  22. RUN apt clean
  23. RUN apt autoremove
  24. RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
  25. RUN locale-gen
  26. RUN update-alternatives --set editor /usr/bin/vim.basic
  27. RUN python3.13 -m ensurepip --upgrade
  28. # RUN useradd -s /bin/bash -m deploy
  29. # RUN passwd -l deploy
  30. # RUN echo 'deploy ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/101-deploy
  31. # USER deploy
  32. # https://github.com/sdkman/sdkman-cli
  33. # https://docs.gradle.org/current/userguide/compatibility.html
  34. ENV JDK_VERSION="21.0.2-open"
  35. RUN curl -s "https://get.sdkman.io" | bash
  36. RUN sed -i -e 's/sdkman_auto_answer=false/sdkman_auto_answer=true/g' $HOME/.sdkman/etc/config
  37. RUN . $HOME/.sdkman/bin/sdkman-init.sh \
  38. && sdk install java ${JDK_VERSION} \
  39. && sdk install maven \
  40. && sdk install gradle \
  41. && sdk install kotlin
  42. # https://github.com/nvm-sh/nvm
  43. ENV NVM_VERSION="v0.40.3"
  44. RUN git clone -b ${NVM_VERSION} https://github.com/nvm-sh/nvm.git $HOME/.nvm
  45. RUN echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc
  46. RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $HOME/.bashrc
  47. RUN echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> $HOME/.bashrc
  48. RUN . $HOME/.nvm/nvm.sh && nvm install --lts && npm install -g yarn
  49. # https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos
  50. RUN wget -q -O $HOME/downloads/composer https://getcomposer.org/installer
  51. RUN cd $HOME/downloads/composer && php composer && mv composer.phar /usr/local/bin/composer
  52. RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
  53. VOLUME /srv
  54. WORKDIR /srv
  55. CMD ["/bin/bash", "-l"]