I need to install Cosign filter for Apacher server.
I need to use this cosign-filter from Confluence, but when my installation hits ./configure it trow as error:
ERROR: Unknown instruction: --ENABLE-APACHE2=/PATH/TO/APACHE2/BIN/APXS
Then i found out this installation for cosign filter with github repository, and because I use ubuntu16.04 in my Docker container I found it more useful, but in this installation I have a problem with autoconf so when he hits RUN autoconf it trows this error:
autoconf: error: no input file
ERROR: Service 'web' failed to build: The command '/bin/sh -c autoconf' returned a non-zero code: 1
Second error will happen when he hits RUN ./configure --enable-apache2= which apx it will trow this error:
Step 19/35 : RUN ./configure --enable-apache2=`which apxs`
---> Running in 1e9f870df22f
/bin/sh: 1: ./configure: not found
ERROR: Service 'web' failed to build: The command '/bin/sh -c ./configure --enable-apache2=`which apxs`' returned a non-zero code: 127
Dockerfile configuration:
FROM ubuntu:16.04
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN cat /etc/passwd
RUN cat /etc/group
RUN apt-get update && apt-get install -y \
apache2 \
apache2-dev \
libapache2-mod-wsgi-py3 \
autoconf \
libssl-dev
RUN apt-get install -y openssl
RUN mkdir /var/run/sshd
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
# The Umich IAM copy of Cosign includes Apache 2.4 support
RUN wget https://github.com/umich-iam/cosign/archive/master.tar.gz
RUN tar xfz master.tar.gz
RUN cd cosign-master
RUN autoconf
RUN ./configure --enable-apache2=`which apxs`
RUN make
RUN make isntall
RUN mkdir -p /var/cosign/filter
RUN chown www-data:www-data /var/cosign/filter
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code
EXPOSE 80
# Update the default apache site with the config we created.
COPY 000-default.conf /etc/apache2/sites-enabled/000-default.conf
RUN chown -R root:www-data /var/www
RUN chmod u+rwx,g+rx,o+rx /var/www
RUN find /var/www -type d -exec chmod u+rwx,g+rx,o+rx {} +
RUN find /var/www -type f -exec chmod u+rw,g+rw,o+r {} +
#essentially: CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
CMD ["/tmp/start.sh"]
So is there a way I can fix this so I can install and configure this filter, thanks.
Dockerd will run a new container for every instruction except FROM in Dockerfile, so
RUN cd cosign-master
RUN autoconf
RUN ./configure --enable-apache2=`which apxs`
three commands will be executed in three standalone containers, so cd cosign-master command can NOT change the PWD environment for next containers.
You can use the absolute path or execute the associated commands in ONE container, which means in ONE instruction.
RUN cd cosign-master \
&& autoconf \
&& ./configure --enable-apache2=`which apxs` \
&& make \
&& make install
PS:
instruction to execute more commands to reduce the number of layers, because each instruction will generate a new layer.intermediate files or softwares to reduce the size of final image.For examples:
FROM ubuntu:16.04
FROM python:3.5
ENV PYTHONUNBUFFERED=1 \
APACHE_RUN_USER=www-data \
APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 \
APACHE_LOCK_DIR=/var/lock/apache2 \
APACHE_PID_FILE=/var/run/apache2.pid
RUN set -ex \
&& cat /etc/passwd \
&& cat /etc/group \
&& apt-get update \
&& export COMPILE_TOOLS="autoconf libssl-dev openssl" \
&& apt-get install -y \
apache2 \
apache2-dev \
libapache2-mod-wsgi-py3 \
${COMPILE_TOOLS} \
&& wget https://github.com/umich-iam/cosign/archive/master.tar.gz -O /tmp/cosign-master.tar.gz \
&& tar xfz /tmp/cosign-master.tar.gz -C=/tmp \
&& cd /tmp/cosign-master \
&& autoconf \
&& ./configure --enable-apache2=$(which apxs) \
&& make \
&& make install \
&& mkdir -p /var/cosign/filter \
&& chown www-data:www-data /var/cosign/filter \
&& apt-get purge -y ${COMPILE_TOOLS} \
&& rm -rf /var/lib/apt/lists/* \
/tmp/cosign-master.tar.gz \
/tmp/cosign-master/*
WORKDIR /code
# The Umich IAM copy of Cosign includes Apache 2.4 support
COPY requirements.txt /code/
COPY . /code
# Update the default apache site with the config we created.
COPY 000-default.conf /etc/apache2/sites-enabled/000-default.conf
RUN mkdir /var/run/sshd \
&& pip install -r requirements.txt \
&& chown -R root:www-data /var/www \
&& chmod u+rwx,g+rx,o+rx /var/www \
&& find /var/www -type d -exec chmod u+rwx,g+rx,o+rx {} + \
&& find /var/www -type f -exec chmod u+rw,g+rw,o+r {} +
EXPOSE 80
#essentially: CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
CMD ["/tmp/start.sh"]
This will:
35 to just 9!one third of your origin image.Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With