Skip to content
Snippets Groups Projects
Select Git revision
  • 3314a01751cfdca95acdb5d813fc33c89b053f24
  • master default
  • rename_category_group
  • php8.1_deprecations
  • v1.12.1
  • v1.13
  • v1.12
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
19 results

Dockerfile

Blame
  • 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"]