59 lines
1.7 KiB
Docker
59 lines
1.7 KiB
Docker
FROM cloudron/base:4.2.0
|
|
|
|
# Install required packages
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
php-cli \
|
|
php-fpm \
|
|
php-mysql \
|
|
php-curl \
|
|
php-gd \
|
|
php-intl \
|
|
php-mbstring \
|
|
php-xml \
|
|
php-zip \
|
|
php-bcmath \
|
|
nginx \
|
|
supervisor \
|
|
curl \
|
|
zip \
|
|
unzip \
|
|
git \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Composer
|
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
|
|
|
# Get the latest eLabFTW release
|
|
WORKDIR /app/code
|
|
RUN git clone https://github.com/elabftw/elabftw.git . && \
|
|
composer install --no-dev --optimize-autoloader
|
|
|
|
# Configure NGINX
|
|
COPY nginx.conf /etc/nginx/sites-available/default
|
|
|
|
# Prepare directory structure
|
|
RUN mkdir -p /app/data/uploads /app/data/config /app/data/logs /run/php && \
|
|
chown -R cloudron:cloudron /app/data /run/php
|
|
|
|
# Copy initialization data
|
|
RUN mkdir -p /tmp/data/config /tmp/data/uploads /tmp/data/logs && \
|
|
cp -r /app/code/config-example.yml /tmp/data/config/config.yml && \
|
|
chown -R cloudron:cloudron /tmp/data
|
|
|
|
# Copy start script and supervisor config
|
|
COPY start.sh /app/code/
|
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
RUN chmod +x /app/code/start.sh
|
|
|
|
# Configure PHP-FPM
|
|
RUN sed -i 's/www-data/cloudron/g' /etc/php/*/fpm/pool.d/www.conf && \
|
|
sed -i 's/listen = \/run\/php\/php[0-9]\.[0-9]-fpm.sock/listen = \/run\/php\/php-fpm.sock/g' /etc/php/*/fpm/pool.d/www.conf && \
|
|
echo 'catch_workers_output = yes' >> /etc/php/*/fpm/pool.d/www.conf
|
|
|
|
# Create logo image
|
|
RUN curl -o /app/code/logo.png https://raw.githubusercontent.com/elabftw/elabftw/master/src/ts/img/logo.png
|
|
|
|
WORKDIR /app/code
|
|
|
|
CMD ["/app/code/start.sh"] |