Files
projectsend/docker/app/Dockerfile
T
ignacionelson 6e47d76ba6 ProjectSend 2.0.0
Client file sharing, rebuilt from the ground up: a private area per
client, resumable uploads, folders, groups and categories, sharing with
expiry dates and download limits, comments, file versions, an activity
log, a REST API, and sixteen languages.

This repository begins here. ProjectSend 2 was developed privately, and
that development history is not published — the previous generation
remains available, with its own history, at projectsend/legacy.

Free software under the GNU General Public License v2, or (at your
option) any later version.
2026-08-14 01:38:12 -03:00

54 lines
1.8 KiB
Docker

FROM php:8.4-fpm-alpine
# Matches the host user's uid/gid so the bind-mounted repo (dev) needs no
# runtime chown: www-data inside the container owns it already.
ARG WWWUSER=1000
ARG WWWGROUP=1000
RUN apk add --no-cache \
su-exec \
icu-dev \
libzip-dev \
libpng-dev \
libjpeg-turbo-dev \
libwebp-dev \
freetype-dev \
linux-headers \
# LDAP authentication. Kept out of the $PHPIZE_DEPS group below,
# which is deleted after the build — this one has to stay, since
# the extension links against it at runtime. Required in every
# edition, not only where LDAP is switched on: directorytree/
# ldaprecord declares ext-ldap, so composer install fails without
# it whether or not an installation ever binds to a directory.
openldap-dev \
$PHPIZE_DEPS \
&& docker-php-ext-configure gd --with-jpeg --with-webp --with-freetype \
&& docker-php-ext-install -j"$(nproc)" \
bcmath \
pdo_mysql \
intl \
zip \
gd \
ldap \
pcntl \
opcache \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& apk del $PHPIZE_DEPS \
&& delgroup www-data 2>/dev/null || true \
&& deluser www-data 2>/dev/null || true \
&& addgroup -g "$WWWGROUP" www-data \
&& adduser -D -H -u "$WWWUSER" -G www-data www-data
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY docker/app/php.ini /usr/local/etc/php/conf.d/projectsend.ini
COPY docker/app/www-pool.conf /usr/local/etc/php-fpm.d/zz-www-pool.conf
COPY docker/app/entrypoint.sh /usr/local/bin/projectsend-entrypoint
RUN chmod +x /usr/local/bin/projectsend-entrypoint
WORKDIR /var/www/html
ENTRYPOINT ["projectsend-entrypoint"]
CMD ["php-fpm"]