forked from wallabag/wallabag
Update docker-compose and Dockerfile for dev env
This change should ease the spawn of a development environment. It can be used as a vscode devcontainer. Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
This commit is contained in:
@ -1,8 +1,19 @@
|
||||
FROM php:7.2-fpm
|
||||
FROM php:8.0-fpm AS rootless
|
||||
|
||||
# Default timezone. To change it, use the argument in the docker-compose.yml file
|
||||
ARG timezone='Europe/Paris'
|
||||
ARG memorylimit='512M'
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG NODE_VERSION=14
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release \
|
||||
openssl \
|
||||
software-properties-common
|
||||
|
||||
RUN curl 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key' | apt-key add - \
|
||||
&& echo "deb https://deb.nodesource.com/node_${NODE_VERSION}.x $(lsb_release -cs) main" > /etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libmcrypt-dev \
|
||||
@ -15,26 +26,71 @@ RUN apt-get update && apt-get install -y \
|
||||
imagemagick \
|
||||
libmagickwand-dev \
|
||||
libtidy-dev \
|
||||
git
|
||||
RUN docker-php-ext-install \
|
||||
iconv \
|
||||
mbstring \
|
||||
libonig-dev \
|
||||
libzip-dev \
|
||||
libfreetype6-dev \
|
||||
zlib1g-dev \
|
||||
git \
|
||||
build-essential \
|
||||
nodejs
|
||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
|
||||
RUN docker-php-ext-install -j "$(nproc)" \
|
||||
bcmath \
|
||||
gd \
|
||||
gettext \
|
||||
iconv \
|
||||
intl \
|
||||
mbstring \
|
||||
opcache \
|
||||
pdo \
|
||||
pdo_mysql \
|
||||
pdo_pgsql \
|
||||
pdo_sqlite \
|
||||
sockets \
|
||||
tidy \
|
||||
bcmath \
|
||||
zip
|
||||
|
||||
RUN printf "\n" | pecl install imagick && docker-php-ext-enable imagick
|
||||
RUN pecl install redis; \
|
||||
pecl install imagick; \
|
||||
pecl install xdebug; \
|
||||
docker-php-ext-enable \
|
||||
redis \
|
||||
imagick \
|
||||
xdebug \
|
||||
;
|
||||
|
||||
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini
|
||||
RUN echo "memory_limit ="$memorylimit > /usr/local/etc/php/conf.d/memory_limit.ini
|
||||
RUN npm install -g yarn
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
RUN curl -L -o /usr/local/bin/envsubst https://github.com/a8m/envsubst/releases/download/v1.1.0/envsubst-`uname -s`-`uname -m`; \
|
||||
chmod +x /usr/local/bin/envsubst
|
||||
|
||||
CMD ["php-fpm"]
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY config/ /opt/wallabag/config/
|
||||
|
||||
RUN mkdir -p \
|
||||
/var/www/html/app/config/ \
|
||||
/var/www/html/var/cache \
|
||||
/var/www/html/web/assets \
|
||||
/var/www/html/data \
|
||||
/var/www/.cache
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["php", "bin/console", "--env=dev", "server:run", "0.0.0.0:8000"]
|
||||
|
||||
FROM rootless AS default
|
||||
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=1000
|
||||
|
||||
RUN groupmod -g 1000 www-data ; \
|
||||
usermod -u ${USER_UID} -g www-data www-data ; \
|
||||
touch /usr/local/etc/php/conf.d/wallabag-php.ini \
|
||||
/var/www/.yarnrc ; \
|
||||
chown -R www-data: /var/www/html \
|
||||
/usr/local/etc/php/conf.d/wallabag-php.ini \
|
||||
/var/www/.cache \
|
||||
/var/www/.yarnrc
|
||||
|
||||
USER www-data
|
||||
|
||||
Reference in New Issue
Block a user