FROM ubuntu:latest ARG USERNAME=laravel ARG USER_UID=1000 ARG NODE_VERSION='' # node version number like "12.22.1" or empty for the latest version ARG COMPOSER_VERSION='' # composer version number like "2.1" or empty for the latest version ENV NVM_DIR="/home/$USERNAME/.nvm" COPY start-container.sh /usr/local/bin/start-container RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get -y update \ && apt-get install -y curl git 7zip php php-xml php-curl php-xml php-mbstring php-mysql \ && useradd --create-home --uid=$USER_UID $USERNAME \ && chmod +x /usr/local/bin/start-container \ && echo "install composer" \ && curl -o composer-setup.php https://getcomposer.org/installer \ && curl -o composer-setup.sig https://composer.github.io/installer.sig \ && echo " composer-setup.php" >> composer-setup.sig \ && sha384sum -c composer-setup.sig \ && if [ -n "$COMPOSER_VERSION" ]; then COMPOSER_VERSION="--${COMPOSER_VERSION}"; fi \ && php composer-setup.php --install-dir=/usr/local/bin --filename=composer $COMPOSER_VERSION \ && rm composer-setup.php composer-setup.sig /var/www/html/* \ && chown $USERNAME:$USERNAME /var/www/html EXPOSE 8080 WORKDIR /var/www/html USER $USERNAME RUN echo "install nvm and node" \ && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash \ && if [ -z "$NODE_VERSION" ]; then NODE_VERSION="node"; fi \ && echo "source $NVM_DIR/nvm.sh" >> /home/$USERNAME/.bashrc \ && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION ENTRYPOINT ["start-container"]