Update dev
This commit is contained in:
parent
1e61e99ba5
commit
62d0a66939
@ -1,15 +1,13 @@
|
||||
FROM centos:centos7
|
||||
FROM ubuntu:20.04
|
||||
|
||||
LABEL maintainer="contact@ocsinventory-ng.org" \
|
||||
version="dev" \
|
||||
description="OCS Inventory docker image"
|
||||
|
||||
ARG YUM_FLAGS="-y"
|
||||
ARG APT_FLAGS="-y"
|
||||
|
||||
VOLUME /var/lib/ocsinventory-reports /usr/share/ocsinventory-reports/ocsreports /etc/ocsinventory-server
|
||||
|
||||
ENV APACHE_RUN_USER=apache APACHE_RUN_GROUP=apache \
|
||||
APACHE_LOG_DIR=/var/log/httpd APACHE_PID_FILE=/var/run/httpd.pid APACHE_RUN_DIR=/var/run/httpd APACHE_LOCK_DIR=/var/lock/httpd \
|
||||
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
|
||||
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
|
||||
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
|
||||
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports/ocsreports/ \
|
||||
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
|
||||
@ -20,56 +18,44 @@ ENV APACHE_RUN_USER=apache APACHE_RUN_GROUP=apache \
|
||||
|
||||
WORKDIR /tmp
|
||||
|
||||
RUN yum ${YUM_FLAGS} install wget \
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
wget \
|
||||
curl \
|
||||
yum-utils \
|
||||
tar \
|
||||
make \
|
||||
yum ${YUM_FLAGS} install epel-release ; \
|
||||
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ; \
|
||||
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm ; \
|
||||
rpm -Uvh remi-release-7.rpm ; \
|
||||
yum-config-manager --enable remi-php73 ; \
|
||||
yum ${YUM_FLAGS} update ; \
|
||||
yum ${YUM_FLAGS} install perl \
|
||||
perl-XML-Simple \
|
||||
perl-Compress-Zlib \
|
||||
perl-DBI perl-DBD-MySQL \
|
||||
perl-Net-IP \
|
||||
perl-SOAP-Lite \
|
||||
perl-Archive-Zip \
|
||||
perl-Mojolicious \
|
||||
perl-Plack \
|
||||
perl-XML-Entities \
|
||||
perl-Switch \
|
||||
perl-Apache-DBI \
|
||||
httpd \
|
||||
php73-php \
|
||||
php73-php-cli \
|
||||
php73-php-cli \
|
||||
php73-php-gd \
|
||||
php73-php-imap \
|
||||
php73-php-pdo \
|
||||
php73-php-pear \
|
||||
php73-php-mbstring \
|
||||
php73-php-intl \
|
||||
php73-php-mysqlnd \
|
||||
php73-php-xml \
|
||||
php73-php-xmlrpc \
|
||||
php73-php-pecl-mysql \
|
||||
php73-php-pecl-mcrypt \
|
||||
php73-php-pecl-apcu \
|
||||
php73-php-json \
|
||||
php73-php-fpm \
|
||||
php73-php-soap \
|
||||
php73-php-opcache \
|
||||
perl \
|
||||
apache2 \
|
||||
php \
|
||||
libxml-simple-perl \
|
||||
libdbi-perl \
|
||||
libdbd-mysql-perl \
|
||||
libapache-dbi-perl \
|
||||
libnet-ip-perl \
|
||||
libsoap-lite-perl \
|
||||
libarchive-zip-perl \
|
||||
libswitch-perl \
|
||||
libmojolicious-perl \
|
||||
libplack-perl \
|
||||
build-essential \
|
||||
php-pclzip \
|
||||
php-mbstring \
|
||||
php-soap \
|
||||
php-mysql \
|
||||
php-curl \
|
||||
php-xml \
|
||||
php-zip \
|
||||
php-gd \
|
||||
git \
|
||||
vim \
|
||||
nano ;
|
||||
nano \
|
||||
composer
|
||||
|
||||
COPY conf/* /tmp/
|
||||
COPY ./scripts/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
|
||||
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
|
||||
|
||||
@ -12,7 +12,7 @@ services:
|
||||
- "perlcomdata:/etc/ocsinventory-server"
|
||||
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports"
|
||||
- "varlibdata:/var/lib/ocsinventory-reports"
|
||||
- "httpdconfdata:/etc/httpd/conf.d"
|
||||
- "httpdconfdata:/etc/apache2/conf-available"
|
||||
environment:
|
||||
OCS_DB_SERVER: ocsinventory-db-dev
|
||||
OCS_DB_USER: ocsuser
|
||||
@ -33,7 +33,7 @@ services:
|
||||
- ocsdb
|
||||
|
||||
ocsdb :
|
||||
image : mysql:5.7
|
||||
image : mysql:8.0
|
||||
container_name : ocsinventory-db-dev
|
||||
restart: always
|
||||
ports :
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Composer install
|
||||
cd /opt
|
||||
php73 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
php73 composer-setup.php --quiet
|
||||
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
|
||||
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
|
||||
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
|
||||
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/dbconfig.inc.php"
|
||||
|
||||
API_ROUTE=$(perl -e "print \"@INC[2]\"")
|
||||
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
|
||||
|
||||
# Move to temp and download OCS
|
||||
cd /tmp
|
||||
@ -11,11 +14,11 @@ git clone $SERVER_REPOSITORY_GIT_URL OCSNG_UNIX_SERVER -b $SERVER_REPOSITORY_BRA
|
||||
cd OCSNG_UNIX_SERVER/
|
||||
git clone $OCSREPORTS_REPOSITORY_GIT_URL ocsreports -b $OCSREPORTS_REPOSITORY_BRANCH
|
||||
cd ocsreports/
|
||||
php73 /opt/composer.phar install
|
||||
composer install
|
||||
cd /tmp/OCSNG_UNIX_SERVER
|
||||
|
||||
# Create all directories
|
||||
mkdir -p $OCS_WEBCONSOLE_DIR
|
||||
mkdir -p ${OCS_WEBCONSOLE_DIR}
|
||||
mkdir -p $OCS_LOG_DIR
|
||||
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
|
||||
mkdir -p $OCS_PLUGINSEXT_DIR
|
||||
@ -32,68 +35,73 @@ make
|
||||
make install
|
||||
cd ..
|
||||
|
||||
cp -R Api/ /usr/local/share/perl5
|
||||
cp -R Api/ $API_ROUTE
|
||||
|
||||
# Webconsole
|
||||
cp -R ocsreports/. $OCS_WEBCONSOLE_DIR
|
||||
cp -R ocsreports/. ${OCS_WEBCONSOLE_DIR}
|
||||
|
||||
# Configure z-ocsinventory-server file
|
||||
cp /tmp/ocsinventory-server.conf /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/VERSION_MP/2/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
sed -i 's/OCS_SSL_COM_MODE/'"$OCS_SSL_COM_MODE"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf
|
||||
cp /tmp/ocsinventory-server.conf ${SRV_CONF_FILE}
|
||||
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${SRV_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_COM_MODE/'"$OCS_SSL_COM_MODE"'/g' ${SRV_CONF_FILE}
|
||||
|
||||
# Configure zz-ocsinventory-restapi file
|
||||
if [ ! -f /etc/httpd/conf.d/zz-ocsinventory-restapi.conf ]; then
|
||||
cp /tmp/conf/ocsinventory-restapi.conf /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/REST_API_PATH/\/usr\/local\/share\/perl5/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
sed -i 's/REST_API_LOADER_PATH/\/usr\/local\/share\/perl5\/Api\/Ocsinventory\/Restapi\/Loader.pm/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
|
||||
if [ ! -f ${API_CONF_FILE} ]; then
|
||||
cp /tmp/ocsinventory-restapi.conf ${API_CONF_FILE}
|
||||
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
|
||||
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
|
||||
fi
|
||||
|
||||
# Configure ocsinventory-reports file
|
||||
cp /tmp/ocsinventory-reports.conf /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/PACKAGES_ALIAS/\/download/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/SNMP_ALIAS/\/snmp/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' /etc/httpd/conf.d/ocsinventory-reports.conf
|
||||
cp /tmp/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
|
||||
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
|
||||
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'/g' ${REPORTS_CONF_FILE}
|
||||
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
|
||||
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
|
||||
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
|
||||
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
|
||||
|
||||
# Generate dbconfig.inc.php
|
||||
cp /tmp/dbconfig.inc.php $OCS_WEBCONSOLE_DIR
|
||||
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/dbconfig.inc.php
|
||||
cp /tmp/dbconfig.inc.php ${OCS_WEBCONSOLE_DIR}
|
||||
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
|
||||
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
|
||||
|
||||
# Permissions
|
||||
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
|
||||
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
|
||||
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
|
||||
chown -R $APACHE_RUN_USER: ${OCS_WEBCONSOLE_DIR}
|
||||
|
||||
# Enable conf
|
||||
a2enconf ocsinventory-reports
|
||||
a2enconf z-ocsinventory-server
|
||||
a2enconf zz-ocsinventory-restapi
|
||||
|
||||
# Apache start
|
||||
if [ ! -d "$APACHE_RUN_DIR" ]; then
|
||||
@ -104,4 +112,4 @@ if [ -f "$APACHE_PID_FILE" ]; then
|
||||
rm "$APACHE_PID_FILE"
|
||||
fi
|
||||
|
||||
/usr/sbin/httpd -DFOREGROUND
|
||||
/usr/sbin/apache2 -DFOREGROUND
|
||||
|
||||
Loading…
Reference in New Issue
Block a user