summaryrefslogtreecommitdiffstats
path: root/aai-traversal/src/main/resources/docker/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'aai-traversal/src/main/resources/docker/Dockerfile')
-rw-r--r--aai-traversal/src/main/resources/docker/Dockerfile85
1 files changed, 85 insertions, 0 deletions
diff --git a/aai-traversal/src/main/resources/docker/Dockerfile b/aai-traversal/src/main/resources/docker/Dockerfile
new file mode 100644
index 0000000..66cf412
--- /dev/null
+++ b/aai-traversal/src/main/resources/docker/Dockerfile
@@ -0,0 +1,85 @@
+FROM ubuntu:14.04
+
+ENV DEBIAN_FRONTEND noninteractive
+
+ENV HTTP_PROXY ${HTTP_PROXY}
+ENV HTTPS_PROXY ${HTTP_PROXY}
+ENV https_proxy ${HTTP_PROXY}
+ENV http_proxy ${HTTP_PROXY}
+
+# Setup JAVA_HOME, this is useful for docker commandline
+ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
+
+# Install all the application requirements such as curl ksh and git
+# Also install the chef and then remove it in one RUN command
+# Because the docker files work like git commits and each command is committed
+# So removing the chef in a different command will still have its in its build image
+# Its good to be optimizing and removing any files that are not needed for docker images
+# for the best possible performance out of your image
+
+RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
+ if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::https::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
+ apt-get update && \
+ apt-get install -y software-properties-common && \
+ apt-get install --reinstall ca-certificates && \
+ sudo -E add-apt-repository ppa:openjdk-r/ppa && \
+ apt-get update && \
+ apt-get -qq install -y openjdk-8-jre-headless git curl ksh && \
+ curl -k -LO https://packages.chef.io/stable/ubuntu/14.04/chefdk_0.17.17-1_amd64.deb || \
+ curl --tlsv1 -LO https://packages.chef.io/stable/ubuntu/14.04/chefdk_0.17.17-1_amd64.deb && \
+ dpkg -i chefdk_0.17.17-1_amd64.deb && \
+ rm chefdk_0.17.17-1_amd64.deb && \
+ rm -rf /var/lib/apt/lists/*
+
+# Add the proper files into the docker image from your build
+ADD ./opt/app /opt/app
+ADD ./commonLibs/ /opt/app/commonLibs/
+ADD init-chef.sh /init-chef.sh
+ADD docker-entrypoint.sh /docker-entrypoint.sh
+ADD aai.sh /etc/profile.d/aai.sh
+
+# Expose the ports for outside linux to use
+# 8446 is the important one to be used
+
+EXPOSE 8446
+
+# Create the /var/chef if it doesn't exist
+WORKDIR /var/chef
+
+# Create the directory structure of aai application resembling the development server
+# hard-coding path to match ajsc version
+
+RUN chmod 755 /init-chef.sh /docker-entrypoint.sh && chmod 644 /etc/profile.d/aai.sh && \
+ mkdir /opt/aaihome && \
+ useradd -r -ms /bin/bash -d /opt/aaihome/aaiadmin aaiadmin && \
+ mkdir -p /opt/app/${project.artifactId} && \
+ chown aaiadmin:aaiadmin /opt/app/${project.artifactId} && \
+ chown -R aaiadmin:aaiadmin /opt/app/${project.artifactId} && \
+ mkdir -p /opt/aai/logroot && \
+ chown -R aaiadmin:aaiadmin /opt/aai/logroot && \
+ ln -s /opt/app/${project.artifactId}/bin scripts && \
+ mkdir -p /opt/app/${project.artifactId}/extApps && chown -R aaiadmin:aaiadmin /opt/app/${project.artifactId}/extApps && \
+ find /opt/app/${project.artifactId}/bin -name "*.sh" -exec chmod 755 {} + && \
+ chown aaiadmin:aaiadmin /docker-entrypoint.sh && \
+ chown -R aaiadmin:aaiadmin /var/chef && \
+ mkdir -p /opt/aai/logroot/AAI-GQ && \
+ chown aaiadmin:aaiadmin /opt/aai/logroot/AAI-GQ && \
+ ln -s /opt/aai/logroot/AAI-GQ /opt/app/${project.artifactId}/logs && \
+ chown -R aaiadmin:aaiadmin /opt/app/${project.artifactId}/logs
+
+VOLUME /opt/aai/logroot/AAI-GQ
+
+WORKDIR /
+
+USER aaiadmin
+
+# When the container is started this is the entrypoint script
+# that docker will run. Make sure this script doesn't end abruptly
+# If you want the container running even if the main application stops
+# You can run a ever lasting process like tail -f /dev/null
+# Or something like that at the end of the docker-entrypoint script
+# So if the main application you are planning on running fails
+# the docker container keeps on running forever
+
+ENTRYPOINT ./docker-entrypoint.sh
+