Last active
March 11, 2016 05:23
-
-
Save MasoodGit/b944b1d1e9f6ab68a1da to your computer and use it in GitHub Desktop.
Dockerfile : Jenkins container, with gradle, nodejs, npm and postgres installations
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dockerfile, installs gradle , nodejs, npm and postgress on jenkins base image | |
FROM jenkins | |
MAINTAINER "phoenix" | |
USER root | |
# Set proxy if needed | |
ENV http_proxy "" | |
ENV https_proxy "" | |
# gradle version | |
ENV GRADLE_VERSION 2.11 | |
# Install gradle, cd to /var/jenkins_home | |
WORKDIR /usr/bin | |
RUN curl -sLO https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ | |
unzip gradle-${GRADLE_VERSION}-all.zip && \ | |
ln -s gradle-${GRADLE_VERSION} gradle && \ | |
rm gradle-${GRADLE_VERSION}-all.zip | |
ENV GRADLE_HOME /usr/bin/gradle | |
ENV PATH $PATH:$GRADLE_HOME/bin | |
# Install nodejs and npm | |
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y nodejs npm | |
# symlink nodejs as node | |
RUN ln -s /usr/bin/nodejs /usr/bin/node | |
# Install gulp globally | |
RUN npm install -g gulp | |
EXPOSE 8080 | |
# Add the PostgreSQL PGP key to verify their Debian packages. | |
# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc | |
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 | |
# Add PostgreSQL's repository. It contains the most recent stable release | |
# of PostgreSQL, ``9.4``. | |
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list | |
# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.4 | |
# There are some warnings (in red) that show up during the build. You can hide | |
# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive | |
# | |
RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.4 postgresql-client-9.4 postgresql-contrib-9.4 | |
# Note: The official Debian and Ubuntu images automatically ``apt-get clean`` | |
# after each ``apt-get`` | |
# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.4`` package when it was ``apt-get installed`` | |
USER postgres | |
# Create a PostgreSQL role named ``pgadmin`` with ``pgadmin`` as the password and | |
# then create a database `somedatabase` owned by the ``pgadmin`` role. | |
# Note: here we use ``&&\`` to run commands one after the other - the ``\`` | |
# allows the RUN command to span multiple lines. | |
RUN /etc/init.d/postgresql start &&\ | |
psql --command "CREATE USER pgadmin WITH SUPERUSER PASSWORD 'pgadmin';" &&\ | |
createdb -O pgadmin somedatabase | |
USER root | |
# Adjust PostgreSQL configuration so that remote connections to the | |
# database are possible. | |
RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.4/main/pg_hba.conf | |
# And add ``listen_addresses`` to ``/etc/postgresql/9.4/main/postgresql.conf`` | |
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.4/main/postgresql.conf | |
# Expose the PostgreSQL port | |
EXPOSE 5432 | |
RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql | |
# Add VOLUMEs to allow backup of config, logs and databases | |
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] | |
# Reset proxy | |
ENV http_proxy "" | |
ENV https_proxy "" | |
# Set the default command to run when starting the container | |
# CMD ["/usr/lib/postgresql/9.4/bin/postgres", "-D", "/var/lib/postgresql/9.4/main", "-c", "config_file=/etc/postgresql/9.4/main/postgresql.conf"] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment