Select Git revision
-
Carsten Karbach authoredCarsten Karbach authored
Dockerfile 3.99 KiB
FROM ubuntu:16.04
MAINTAINER Carsten Karbach (c.karbach@fz-juelich.de)
ARG oic=rpms/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
ARG osdk=rpms/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
ARG osqlplus=rpms/oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
# install dependencies, certificates, apache
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& apt-get -y dist-upgrade \
&& apt-get autoremove -y \
&& apt-get clean all \
&& apt-get install -y apache2 \
&& rm -r /var/lib/apt/lists/*
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# disable interactive functions
ENV DEBIAN_FRONTEND noninteractive
# Install php
RUN apt-get update && \
apt-get install -y curl zip unzip php libapache2-mod-php git \
php-fpm php-cli php-mysqlnd php-pgsql php-sqlite3 php-redis \
php-apcu php-intl php-imagick php-mcrypt php-json php-gd php-curl php-mbstring php-xml && \
phpenmod mcrypt && \
rm -rf /var/lib/apt/lists/*
# Install composer
RUN cd /tmp && curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
#Oracle Envs
RUN echo "# Oracle Instant Client" >> /etc/environment && \
echo "LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64" >> /etc/environment && \
echo "TNS_ADMIN=/usr/lib/oracle/12.2/client64" >> /etc/environment && \
echo "ORACLE_BASE=/usr/lib/oracle/12.2/client64" >> /etc/environment && \
echo "ORACLE_HOME=/usr/lib/oracle/12.2/client64" >> /etc/environment && \
echo "NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252" >> /etc/environment && \
echo 'NLS_NUMERIC_CHARACTERS=". "' >> /etc/environment
#Make variables also available to www-data user in apache
RUN echo 'export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64' >> /etc/apache2/envvars && \
echo 'export TNS_ADMIN=/usr/lib/oracle/12.2/client64' >> /etc/apache2/envvars && \
echo 'export ORACLE_BASE=/usr/lib/oracle/12.2/client64' >> /etc/apache2/envvars && \
echo 'export ORACLE_HOME=/usr/lib/oracle/12.2/client64' >> /etc/apache2/envvars && \
echo 'export NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252' >> /etc/apache2/envvars && \
echo 'export NLS_NUMERIC_CHARACTERS=". "' >> /etc/apache2/envvars
#PHP PDO OCI Stuff... really annoying!
RUN mkdir /tmp/rpms
ADD $oic $osdk $osqlplus /tmp/rpms/
ENV ORACLE_HOME /usr/lib/oracle/12.2/client64
#change workdir to tmp
WORKDIR /tmp
#install oracle instant client and compile php oci and pdo extensions.
ADD utils/build_oracle_pdo_oci.sh /tmp/
RUN apt-get update && apt-get install -y --no-install-recommends \
alien \
build-essential \
gcc \
libxml2-dev \
make \
php-pear \
php7.0-dev \
wget \
&& \
alien -i /tmp/$oic && \
alien -i /tmp/$osdk && \
alien -i /tmp/$osqlplus && \
echo "/usr/lib/oracle/12.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf && ldconfig && \
./build_oracle_pdo_oci.sh && \
apt-get -y purge \
alien \
build-essential \
gcc \
libxml2-dev \
make \
php7.0-dev \
wget \
&& \
apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends libaio1 && \
apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/*
WORKDIR /root
# Setup for EventsAPI application
RUN rm /var/www/html/index.html
# Add EventsApi source
ADD . /var/www/html/EventsAPI
# Activate Rewrite and SSL module
RUN a2enmod rewrite && a2enmod ssl
# Configure Rewrites for silex
RUN cp /var/www/html/EventsAPI/configs/000-default.conf /etc/apache2/sites-available/000-default.conf && \
cp /var/www/html/EventsAPI/configs/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf
# Activate SSL connections
RUN a2ensite default-ssl.conf
# Set access rights for www-data, run composer
RUN php /var/www/html/EventsAPI/utils/install.php
# DO not allow access to root doc
RUN echo "deny from all" > /var/www/html/.htaccess
ADD ./servercerts /etc/ssl/certs/
ADD setup.sh /tmp/
WORKDIR /tmp
RUN ./setup.sh
RUN rm -rf /tmp/*
# Default command
CMD ["apachectl", "-D", "FOREGROUND"]