forked from OCSInventory-NG/OCSInventory-Docker-Image
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
117 lines (103 loc) · 3.63 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
106
107
108
109
110
111
112
113
114
115
116
117
FROM debian:jessie-slim
LABEL maintainer="Martin Brandt m.brandt@globits.de"
LABEL version="2.4.1"
LABEL description="OCS (Open Computers and Software Inventory Next Generation)"
ARG APT_FLAGS="-y --no-install-recommends"
ARG TIMEZONE="Europe/Berlin"
VOLUME /var/lib/mysql
RUN apt-get update ; \
apt-get ${APT_FLAGS} install \
apache2 \
apache2-doc \
apt-utils \
php5 \
php5-gd \
php5-mysql \
php5-cgi \
php5-curl \
perl \
build-essential \
libapache2-mod-php5 \
libxml2 \
libxml-simple-perl \
libc6-dev \
libnet-ip-perl \
libxml-libxml-perl \
libapache2-mod-perl2 \
libdbi-perl \
libapache-dbi-perl \
libdbd-mysql-perl \
libio-compress-perl \
libxml-simple-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libnet-ip-perl \
libphp-pclzip \
libsoap-lite-perl \
libarchive-zip-perl \
libmodule-build-perl \
wget \
tar \
make ;\
cpan -i XML::Entities ;\
/usr/sbin/a2dissite 000-default ;\
/usr/sbin/a2enmod rewrite ;\
/usr/sbin/a2enmod ssl ;\
/usr/sbin/a2enmod authz_user
COPY ./scripts/docker-download.sh /tmp/docker-download.sh
RUN sh /tmp/docker-download.sh 2.4.1
WORKDIR /tmp/ocs/Apache
RUN perl Makefile.PL ;\
make ;\
make install ;\
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime ;\
cp -R blib/lib/Apache /usr/local/share/perl/5.20.2/ ;\
cp -R Ocsinventory /usr/local/share/perl/5.20.2/ ;\
cp /tmp/ocs/etc/logrotate.d/ocsinventory-server /etc/logrotate.d/ ;\
mkdir -p /etc/ocsinventory-server/plugins ;\
mkdir -p /etc/ocsinventory-server/perl ;\
mkdir -p /usr/share/ocsinventory-reports/ocsreports
ENV TIMEZONE=${TIMEZONE}
ENV APACHE_RUN_USER=www-data
ENV APACHE_RUN_GROUP=www-data
ENV APACHE_LOG_DIR=/var/log/apache2
ENV APACHE_PID_FILE=/var/run/apache2.pid
ENV APACHE_RUN_DIR=/var/run/apache2f
ENV APACHE_LOCK_DIR=/var/lock/apache2
ENV APACHE_LOG_DIR=/var/log/apache2
ENV OCS_DBNAME=ocsweb
ENV OCS_DBSERVER_READ=localhost
ENV OCS_DBSERVER_WRITE=localhost
ENV OCS_DBUSER=ocs
ENV OCS_DBPASS=ocs
WORKDIR /tmp/ocs
RUN cp -R ocsreports/* /usr/share/ocsinventory-reports/ocsreports
COPY dbconfig.inc.php /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
RUN bash -c 'mkdir -p /var/lib/ocsinventory-reports/{download,ipd,logs,scripts,snmp}' ;\
chmod -R +w /var/lib/ocsinventory-reports ;\
chown www-data: -R /var/lib/ocsinventory-reports ;\
cp binutils/ipdiscover-util.pl /usr/share/ocsinventory-reports/ocsreports/ipdiscover-util.pl ;\
chown www-data: /usr/share/ocsinventory-reports/ocsreports/ipdiscover-util.pl ;\
chmod 755 /usr/share/ocsinventory-reports/ocsreports/ipdiscover-util.pl ;\
chmod +w /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php ;\
mkdir -p /var/log/ocsinventory-server/ ;\
chmod +w /var/log/ocsinventory-server ;\
chown -R www-data: /usr/share/ocsinventory-reports/
COPY /conf/ocsinventory-reports.conf /conf/z-ocsinventory-server.conf /etc/apache2/conf-available/
COPY ./scripts/run.sh /root/run.sh
RUN chmod +x /root/run.sh ;\
ln -s /etc/apache2/conf-available/ocsinventory-reports.conf /etc/apache2/conf-enabled/ocsinventory-reports.conf ;\
ln -s /etc/apache2/conf-available/z-ocsinventory-server.conf /etc/apache2/conf-enabled/z-ocsinventory-server.conf ;\
rm /tmp/docker-download.sh ;\
rm /OCSNG*.gz ;\
rm -rf /tmp/ocs ;\
apt-get clean ;\
apt-get autoclean ;\
apt-get autoremove ;\
rm -rf /var/lib/apt/lists/* ;\
rm -rf /var/cache/apt/archives/* ;
# forward logs to docker log collector
RUN ln -sf /dev/stdout /var/log/ocsinventory-server
EXPOSE 80
EXPOSE 443
CMD ["/bin/bash", "/root/run.sh"]