mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-12 10:46:29 +00:00
113 lines
3.3 KiB
Docker
113 lines
3.3 KiB
Docker
FROM php:8.1-fpm AS rootless
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG NODE_VERSION=20
|
|
|
|
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 \
|
|
libicu-dev \
|
|
libpq-dev \
|
|
libxml2-dev \
|
|
libpng-dev \
|
|
libjpeg-dev \
|
|
libwebp-dev \
|
|
libsqlite3-dev \
|
|
imagemagick \
|
|
libmagickwand-dev \
|
|
libtidy-dev \
|
|
libonig-dev \
|
|
libzip-dev \
|
|
libfreetype6-dev \
|
|
zlib1g-dev \
|
|
git \
|
|
build-essential \
|
|
nodejs
|
|
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
|
|
RUN docker-php-ext-install -j "$(nproc)" \
|
|
bcmath \
|
|
gd \
|
|
gettext \
|
|
iconv \
|
|
intl \
|
|
mbstring \
|
|
opcache \
|
|
pdo \
|
|
pdo_mysql \
|
|
pdo_pgsql \
|
|
pdo_sqlite \
|
|
sockets \
|
|
tidy \
|
|
zip
|
|
|
|
RUN pecl install redis; \
|
|
pecl install imagick; \
|
|
pecl install xdebug-3.1.6; \
|
|
docker-php-ext-enable \
|
|
redis \
|
|
imagick \
|
|
xdebug \
|
|
;
|
|
|
|
RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
|
&& architecture=$(uname -m) \
|
|
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/$architecture/$version \
|
|
&& mkdir -p /tmp/blackfire \
|
|
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \
|
|
&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
|
|
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8307\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
|
&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
|
|
|
|
RUN mkdir -p /tmp/blackfire \
|
|
&& architecture=$(uname -m) \
|
|
&& curl -A "Docker" -L https://blackfire.io/api/v1/releases/cli/linux/$architecture | tar zxp -C /tmp/blackfire \
|
|
&& mv /tmp/blackfire/blackfire /usr/bin/blackfire \
|
|
&& rm -Rf /tmp/blackfire
|
|
|
|
RUN npm install -g yarn
|
|
|
|
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
|
|
|
|
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/html/data/db \
|
|
/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
|