Create Dockerfile
Browse files- Dockerfile +115 -0
Dockerfile
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ==========================================
|
| 2 |
+
# OMNIGROUP - SYNAPS FULL-STACK
|
| 3 |
+
# HumHub 1.18.2 + MySQL 8.0 Community
|
| 4 |
+
# HF Spaces 18GB RAM | Port 7860
|
| 5 |
+
# ==========================================
|
| 6 |
+
FROM php:8.2-apache
|
| 7 |
+
|
| 8 |
+
USER root
|
| 9 |
+
|
| 10 |
+
ENV DEBIAN_FRONTEND=noninteractive \
|
| 11 |
+
PORT=7860 \
|
| 12 |
+
HUMHUB_VERSION=1.18.2 \
|
| 13 |
+
MYSQL_ROOT_PASSWORD=omnigroup_root \
|
| 14 |
+
MYSQL_USER=madiba \
|
| 15 |
+
MYSQL_PASSWORD=omnigroup_master \
|
| 16 |
+
MYSQL_DATABASE=synaps_db \
|
| 17 |
+
APACHE_RUN_USER=www-data \
|
| 18 |
+
APACHE_RUN_GROUP=www-data
|
| 19 |
+
|
| 20 |
+
# ββ Apache : port 7860 + modules βββββββββββββββββββββββββββββββββββββββββββββ
|
| 21 |
+
RUN sed -i 's/Listen 80/Listen 7860/' /etc/apache2/ports.conf && \
|
| 22 |
+
echo "ServerName localhost" >> /etc/apache2/apache2.conf && \
|
| 23 |
+
a2enmod rewrite headers expires deflate
|
| 24 |
+
|
| 25 |
+
RUN cat > /etc/apache2/sites-available/000-default.conf << 'APACHECONF'
|
| 26 |
+
<VirtualHost *:7860>
|
| 27 |
+
DocumentRoot /var/www/html
|
| 28 |
+
<Directory /var/www/html>
|
| 29 |
+
Options FollowSymLinks
|
| 30 |
+
AllowOverride All
|
| 31 |
+
Require all granted
|
| 32 |
+
</Directory>
|
| 33 |
+
<Directory /var/www/html/protected>
|
| 34 |
+
Deny from all
|
| 35 |
+
</Directory>
|
| 36 |
+
</VirtualHost>
|
| 37 |
+
APACHECONF
|
| 38 |
+
|
| 39 |
+
# ββ DΓ©pendances systΓ¨me βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 40 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 41 |
+
gnupg2 wget lsb-release cron \
|
| 42 |
+
libpng-dev libjpeg-dev libfreetype6-dev libicu-dev libxml2-dev \
|
| 43 |
+
libzip-dev libonig-dev libmagickwand-dev tar curl unzip sudo \
|
| 44 |
+
libldap2-dev libsodium-dev \
|
| 45 |
+
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 46 |
+
|
| 47 |
+
# ββ MySQL 8.0 Community (compatible kernel Amazon Linux / HF Spaces) ββββββββββ
|
| 48 |
+
RUN wget -q https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb -O /tmp/mysql-apt.deb && \
|
| 49 |
+
echo "mysql-apt-config mysql-apt-config/select-server select mysql-8.0" | debconf-set-selections && \
|
| 50 |
+
echo "mysql-apt-config mysql-apt-config/select-product select Ok" | debconf-set-selections && \
|
| 51 |
+
DEBIAN_FRONTEND=noninteractive dpkg -i /tmp/mysql-apt.deb && \
|
| 52 |
+
apt-get update && \
|
| 53 |
+
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server mysql-client && \
|
| 54 |
+
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/mysql-apt.deb
|
| 55 |
+
|
| 56 |
+
# ββ Extensions PHP ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 57 |
+
RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \
|
| 58 |
+
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
|
| 59 |
+
docker-php-ext-install -j$(nproc) \
|
| 60 |
+
gd intl pdo_mysql mysqli zip mbstring xml opcache exif ldap sodium fileinfo
|
| 61 |
+
|
| 62 |
+
RUN pecl install apcu imagick && docker-php-ext-enable apcu imagick
|
| 63 |
+
|
| 64 |
+
# ββ php.ini optimisΓ© (18GB RAM) βββββββββββββββββββββββββββββββββββββββββββββββ
|
| 65 |
+
RUN { \
|
| 66 |
+
echo "memory_limit = 512M"; \
|
| 67 |
+
echo "upload_max_filesize = 1G"; \
|
| 68 |
+
echo "post_max_size = 1G"; \
|
| 69 |
+
echo "max_execution_time = 600"; \
|
| 70 |
+
echo "max_input_time = 600"; \
|
| 71 |
+
echo "date.timezone = UTC"; \
|
| 72 |
+
echo "realpath_cache_size = 4096K"; \
|
| 73 |
+
echo "realpath_cache_ttl = 600"; \
|
| 74 |
+
echo "opcache.enable = 1"; \
|
| 75 |
+
echo "opcache.memory_consumption = 512"; \
|
| 76 |
+
echo "opcache.max_accelerated_files = 20000"; \
|
| 77 |
+
echo "opcache.interned_strings_buffer = 64"; \
|
| 78 |
+
echo "opcache.fast_shutdown = 1"; \
|
| 79 |
+
echo "apc.enabled = 1"; \
|
| 80 |
+
echo "apc.shm_size = 512M"; \
|
| 81 |
+
echo "allow_url_fopen = On"; \
|
| 82 |
+
echo "pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock"; \
|
| 83 |
+
echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock"; \
|
| 84 |
+
} > /usr/local/etc/php/conf.d/synaps-optimizations.ini
|
| 85 |
+
|
| 86 |
+
# ββ HumHub ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 87 |
+
WORKDIR /var/www/html
|
| 88 |
+
RUN wget -q https://download.humhub.com/downloads/install/humhub-${HUMHUB_VERSION}.tar.gz -O humhub.tar.gz && \
|
| 89 |
+
tar -xzf humhub.tar.gz --strip-components=1 && \
|
| 90 |
+
rm humhub.tar.gz
|
| 91 |
+
|
| 92 |
+
# PrΓ©-crΓ©er tous les rΓ©pertoires requis par HumHub
|
| 93 |
+
RUN mkdir -p \
|
| 94 |
+
/var/www/html/uploads/file \
|
| 95 |
+
/var/www/html/uploads/profile_image \
|
| 96 |
+
/var/www/html/protected/runtime/cache \
|
| 97 |
+
/var/www/html/protected/runtime/logs \
|
| 98 |
+
/var/www/html/protected/runtime/searchdb \
|
| 99 |
+
/var/www/html/protected/runtime/tmp \
|
| 100 |
+
/var/www/html/protected/modules \
|
| 101 |
+
/var/www/html/assets && \
|
| 102 |
+
chown -R www-data:www-data /var/www/html && \
|
| 103 |
+
find /var/www/html -type d -exec chmod 755 {} + && \
|
| 104 |
+
find /var/www/html -type f -exec chmod 644 {} + && \
|
| 105 |
+
chmod -R 775 \
|
| 106 |
+
/var/www/html/uploads \
|
| 107 |
+
/var/www/html/protected/runtime \
|
| 108 |
+
/var/www/html/protected/modules \
|
| 109 |
+
/var/www/html/assets
|
| 110 |
+
|
| 111 |
+
COPY omni_start.sh /omni_start.sh
|
| 112 |
+
RUN chmod +x /omni_start.sh
|
| 113 |
+
|
| 114 |
+
EXPOSE 7860
|
| 115 |
+
ENTRYPOINT ["/omni_start.sh"]
|