forked from misterunknown/ifm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
106 lines (95 loc) · 3.35 KB
/
Dockerfile
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
96
97
98
99
100
101
102
103
104
105
FROM alpine:3.5
ENV PHP_INI_DIR /etc/php5
# general settings
ENV IFM_AUTH=0 \
IFM_AUTH_SOURCE='inline;admin:$2y$10$0Bnm5L4wKFHRxJgNq.oZv.v7yXhkJZQvinJYR2p6X1zPvzyDRUVRC' \
IFM_ROOT_DIR="" \
IFM_TMP_DIR="" \
IFM_DEFAULTTIMEZONE="Europe/Berlin"
# api controls
ENV IFM_API_AJAXREQUEST=1 IFM_API_CHMOD=1 IFM_API_COPYMOVE=1 \
IFM_API_CREATEDIR=1 IFM_API_CREATEFILE=1 IFM_API_EDIT=1 \
IFM_API_DELETE=1 IFM_API_DOWNLOAD=1 IFM_API_EXTRACT=1 \
IFM_API_UPLOAD=1 IFM_API_REMOTEUPLOAD=1 IFM_API_RENAME=1 \
IFM_API_ZIPNLOAD=1
# gui controls
ENV IFM_GUI_SHOWLASTMODIFIED=0 IFM_GUI_SHOWFILESIZE=1 IFM_GUI_SHOWOWNER=1 \
IFM_GUI_SHOWGROUP=1 IFM_GUI_SHOWPERMISSIONS=2 IFM_GUI_SHOWHTDOCS=1 \
IFM_GUI_SHOWHIDDENFILES=1 IFM_GUI_SHOWPATH=0
# ensure apache user exists with the desired uid
RUN set -x \
&& deluser xfs \
&& addgroup -g 33 -S apache \
&& adduser -u 33 -D -S -G apache apache
RUN set -xe; \
apk add --no-cache --virtual .image-runtime-deps \
bash \
sed \
unzip \
zip \
curl \
tar \
gzip \
bzip2 \
xz
RUN set -xe; \
apk add --no-cache --virtual .ifm-runtime-deps \
apache2 \
apache2-utils \
php5-apache2 \
php5 \
php5-mcrypt \
php5-gd \
php5-intl \
php5-json \
php5-curl \
php5-bz2 \
php5-zlib \
php5-posix \
php5-soap \
php5-openssl \
php5-pcntl \
php5-xml \
php5-phar \
php5-zip
RUN mkdir -p /run/apache2 \
&& mv /var/www/localhost/htdocs /var/www/html \
&& chown -R apache:apache /var/www \
&& chmod g+ws /var/www/html \
&& rm /var/www/html/index.html \
&& rm -Rf /var/www/localhost \
&& sed -ri \
-e 's!^(\s*CustomLog)\s+\S+!\1 /proc/self/fd/1!g' \
-e 's!^(\s*ErrorLog)\s+\S+!\1 /proc/self/fd/2!g' \
-e 's!^#LoadModule rewrite_module!LoadModule rewrite_module!' \
-e 's!/var/www/localhost/htdocs!/var/www/html!g' \
-e 's!/var/www/localhost!/var/www!g' \
"/etc/apache2/httpd.conf" \
&& rm /etc/apache2/conf.d/info.conf \
&& rm /etc/apache2/conf.d/userdir.conf \
&& { \
echo 'ServerTokens Prod'; \
echo 'ServerSignature Off'; \
echo 'DocumentRoot "/var/www/html"'; \
echo '<Directory "/var/www/html">'; \
echo ' Options None'; \
echo ' AllowOverride All'; \
echo ' Require all granted'; \
echo '</Directory>'; \
} > /etc/apache2/conf.d/ZZ_ifm
RUN { \
echo 'date.timezone = "Europe/Berlin"'; \
echo 'zlib.output_compression = On'; \
echo 'zlib.output_compression_level = 6'; \
echo 'memory_limit = 256M'; \
echo 'max_execution_time = 120'; \
echo 'upload_max_filesize = 512M'; \
echo 'post_max_size = 512M'; \
echo 'log_errors = On'; \
echo 'error_log = "/var/www/php.log"'; \
} > $PHP_INI_DIR/conf.d/ZZ_ifm.ini
COPY docker-startup.sh /usr/local/bin/
COPY ifm.php /var/www/html/index.php
WORKDIR /var/www
EXPOSE 80
CMD ["docker-startup.sh"]