85 lines
2.4 KiB
Docker
85 lines
2.4 KiB
Docker
# docker/workspace/Dockerfile
|
|
# Use the official PHP CLI image as the base
|
|
FROM php:8.4-cli
|
|
|
|
# Set environment variables for user and group ID
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
ARG NODE_VERSION=22.0.0
|
|
|
|
# Install system dependencies and build libraries
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
unzip \
|
|
libpq-dev \
|
|
libonig-dev \
|
|
libssl-dev \
|
|
libxml2-dev \
|
|
libcurl4-openssl-dev \
|
|
libicu-dev \
|
|
libzip-dev \
|
|
&& docker-php-ext-install -j"$(nproc)" \
|
|
pdo_mysql \
|
|
pdo_pgsql \
|
|
pgsql \
|
|
opcache \
|
|
intl \
|
|
zip \
|
|
bcmath \
|
|
soap \
|
|
&& pecl install redis xdebug \
|
|
&& docker-php-ext-enable redis xdebug \
|
|
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
|
&& apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
# Xdebug-Args
|
|
ARG XDEBUG_ENABLED
|
|
ARG XDEBUG_MODE
|
|
ARG XDEBUG_HOST
|
|
ARG XDEBUG_IDE_KEY
|
|
ARG XDEBUG_LOG
|
|
ARG XDEBUG_LOG_LEVEL
|
|
|
|
# Configure Xdebug if enabled
|
|
RUN if [ "${XDEBUG_ENABLED}" = "true" ]; then \
|
|
docker-php-ext-enable xdebug && \
|
|
{ \
|
|
echo "xdebug.mode=${XDEBUG_MODE}"; \
|
|
echo "xdebug.idekey=${XDEBUG_IDE_KEY}"; \
|
|
echo "xdebug.log=${XDEBUG_LOG}"; \
|
|
echo "xdebug.log_level=${XDEBUG_LOG_LEVEL}"; \
|
|
echo "xdebug.client_host=${XDEBUG_HOST}"; \
|
|
echo "xdebug.start_with_request=yes"; \
|
|
} >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini ; \
|
|
fi
|
|
|
|
# User/Gruppe anlegen
|
|
RUN if getent group "${GID}" >/dev/null; then \
|
|
useradd -m -u "${UID}" -g "${GID}" -s /bin/bash www; \
|
|
else \
|
|
groupadd -g "${GID}" www && \
|
|
useradd -m -u "${UID}" -g www -s /bin/bash www; \
|
|
fi \
|
|
&& usermod -aG sudo www \
|
|
&& echo 'www ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
|
|
|
USER www
|
|
|
|
# NVM + Node installieren
|
|
RUN export NVM_DIR="$HOME/.nvm" && \
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash && \
|
|
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
|
nvm install "${NODE_VERSION}" && \
|
|
nvm alias default "${NODE_VERSION}" && \
|
|
nvm use default
|
|
|
|
RUN echo 'export NVM_DIR="$HOME/.nvm"' >> /home/www/.bashrc && \
|
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> /home/www/.bashrc && \
|
|
echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"' >> /home/www/.bashrc
|
|
|
|
WORKDIR /var/www
|
|
|
|
ENTRYPOINT []
|
|
|
|
CMD ["bash"]
|