madibaalbert commited on
Commit
1b7c504
Β·
verified Β·
1 Parent(s): ef12bc1

Create Dockerfile

Browse files
Files changed (1) hide show
  1. 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"]