File size: 4,570 Bytes
2c0e326
84f9516
2c0e326
84f9516
09c316d
 
b5446d3
cf15e36
 
 
dfece79
93a3f7d
900a6d9
 
 
6623ee7
1946bf9
 
d40e16c
6623ee7
9f6f4f6
 
57f74eb
7d57daa
 
 
d40e16c
6199157
93a3f7d
 
 
 
4a3e227
 
 
 
83991d8
 
 
6623ee7
469c177
6623ee7
 
83991d8
 
6623ee7
 
83991d8
6623ee7
 
 
 
 
93a3f7d
6623ee7
 
 
83991d8
 
 
 
 
6199157
5f244c1
df92cd1
6199157
 
5f244c1
df92cd1
 
dfe808f
 
0d4498f
baf41db
1d47bd1
 
 
 
 
 
 
 
 
 
 
 
df92cd1
 
 
 
 
1d47bd1
 
18d2fa8
dfe808f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
FROM eltercera/docker-processmaker

EXPOSE 7860

ENV DEBIAN_FRONTEND=noninteractive

# Debian 8 (jessie) アーカイブ設定 & パッケージインストール
RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \
    sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list && \
    sed -i '/jessie-updates/d' /etc/apt/sources.list && \
    apt-get update -o Acquire::Check-Valid-Until=false || true && \
    apt-get install -y --allow-unauthenticated git mysql-server supervisor wget && \
    git config --global user.name "kenken999" && \
    git config --global user.email "kenken999@users.noreply.huggingface.co"

# Apache モジュール有効化
RUN a2enmod expires headers rewrite && \
    echo "ServerName localhost" >> /etc/apache2/apache2.conf

# ProcessMaker ファイルの展開と権限設定
RUN mkdir -p /opt/pm/processmaker/workflow/public_html && \
    cd /opt && \
    tar -xzf processmaker-3.2.3-community.tar.gz && \
    cp -r /opt/processmaker/* /opt/pm/processmaker/workflow/public_html/ && \
    chown -R www-data:www-data /opt/pm/processmaker/workflow/public_html && \
    chmod -R 755 /opt/pm/processmaker/workflow/public_html

# Adminer を公開フォルダ (workflow/public_html/workflow/public_html) 直下に配置
RUN wget https://www.adminer.org/latest.php -O /opt/pm/processmaker/workflow/public_html/workflow/public_html/adminer.php && \
    chown www-data:www-data /opt/pm/processmaker/workflow/public_html/workflow/public_html/adminer.php && \
    chmod 644 /opt/pm/processmaker/workflow/public_html/workflow/public_html/adminer.php

# .htaccess の FilesMatch 許可リストに adminer を追加
RUN sed -i 's/uninstall)/uninstall|adminer)/g' /opt/pm/processmaker/workflow/public_html/workflow/public_html/.htaccess

# Apache VirtualHost 設定 (adminer.php へのアクセス許可 & リライト除外)
RUN sed -i 's/Listen 80/Listen 7860/' /etc/apache2/ports.conf && \
    echo '<VirtualHost *:7860>\n\
    ServerName localhost\n\
    DocumentRoot /opt/pm/processmaker/workflow/public_html/workflow/public_html\n\
    DirectoryIndex index.html index.php\n\
\n\
    <Directory /opt/pm/processmaker/workflow/public_html/workflow/public_html>\n\
        Options Indexes FollowSymLinks MultiViews\n\
        AllowOverride All\n\
        Order allow,deny\n\
        Allow from all\n\
        Require all granted\n\
\n\
        ExpiresActive On\n\
\n\
        <IfModule mod_rewrite.c>\n\
            RewriteEngine On\n\
            RewriteCond %{REQUEST_URI} !^/adminer\.php\n\
            RewriteCond %{REQUEST_FILENAME} !-f\n\
            RewriteRule ^.*/(.*)$ app.php [QSA,L,NC]\n\
        </IfModule>\n\
    </Directory>\n\
    ErrorLog ${APACHE_LOG_DIR}/error.log\n\
    CustomLog ${APACHE_LOG_DIR}/access.log combined\n\
</VirtualHost>' > /etc/apache2/sites-available/000-default.conf

# バックグラウンド自動更新スクリプト
RUN printf '#!/bin/bash\n\
while true; do\n\
  sleep 3\n\
  mysql -u root -pPM-DBPassw0rd -e "UPDATE wf_workflow.USERS SET USR_DUE_DATE = '\''2050-12-31'\'', USR_STATUS = '\''ACTIVE'\'' WHERE USR_USERNAME = '\''admin'\'';" 2>/dev/null || true\n\
done\n' > /fix_expire.sh && chmod +x /fix_expire.sh

# MySQL 権限付与
RUN service mysql start && \
    mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'PM-DBPassw0rd' WITH GRANT OPTION; FLUSH PRIVILEGES;" || true

# supervisord 設定作成
RUN echo '[supervisord]' > /supervisord.conf && \
    echo 'nodaemon=true' >> /supervisord.conf && \
    echo 'user=root' >> /supervisord.conf && \
    echo '' >> /supervisord.conf && \
    echo '[program:mysql]' >> /supervisord.conf && \
    echo 'command=/usr/bin/pidproxy /var/run/mysqld/mysqld.pid /usr/bin/mysqld_safe' >> /supervisord.conf && \
    echo 'autostart=true' >> /supervisord.conf && \
    echo 'autorestart=true' >> /supervisord.conf && \
    echo '' >> /supervisord.conf && \
    echo '[program:apache2]' >> /supervisord.conf && \
    echo 'command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND -k start"' >> /supervisord.conf && \
    echo 'autostart=true' >> /supervisord.conf && \
    echo 'autorestart=true' >> /supervisord.conf && \
    echo '' >> /supervisord.conf && \
    echo '[program:fix_expire]' >> /supervisord.conf && \
    echo 'command=/fix_expire.sh' >> /supervisord.conf && \
    echo 'autostart=true' >> /supervisord.conf && \
    echo 'autorestart=true' >> /supervisord.conf

ENTRYPOINT []
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]