Skip to content

Instantly share code, notes, and snippets.

@phucnh
Created August 17, 2015 04:58
Show Gist options
  • Save phucnh/6b7322eb8b2b905d9cd3 to your computer and use it in GitHub Desktop.
Save phucnh/6b7322eb8b2b905d9cd3 to your computer and use it in GitHub Desktop.
Sample Dockerfile jar project
FROM ubuntu:trusty
# Port mapping
EXPOSE 8080
# Install oracle-java8
RUN \
apt-get install -y software-properties-common && \
add-apt-repository -y ppa:webupd8team/java && \
apt-get update && \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
apt-get install -y oracle-java8-installer && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer
# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
# Define project name
ENV PROJECT_NAME bravo
# Environment variables
# `S3_WEB_KEY_PLACEHOLDER` is replaced by Jenkins etc...
ENV WORK_DIR=/opt/${PROJECT_NAME} \
S3_WEB_KEY=S3_WEB_KEY_PLACEHOLDER
# Goto jars dir
WORKDIR ${WORK_DIR}/jars
# Install requirements
RUN apt-get update && apt-get install wget curl -y
RUN curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python3 && pip install awscli
# Download AspectJ Weaver jar
RUN wget http://central.maven.org/maven2/org/aspectj/aspectjweaver/1.7.4/aspectjweaver-1.7.4.jar
# AWS Credential
ENV AWS_ACCESS_KEY_ID key_id
ENV AWS_SECRET_ACCESS_KEY access_key
# Download fat jar
# This AWS credential is only valid in this fs layer.
RUN AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
aws s3 cp s3://${PROJECT_NAME}-releases/${S3_WEB_KEY} ${PROJECT_NAME}-web.jar
WORKDIR ${WORK_DIR}/scripts
COPY scripts/startup.sh ./
CMD ["/opt/${PROJECT_NAME}/scripts/startup.sh"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment