From 261eb03102ae67c5770270878f84330226dc9890 Mon Sep 17 00:00:00 2001 From: Mano Marks Date: Mon, 25 Apr 2016 11:28:21 -0700 Subject: [PATCH] adding in improvements from when we ran the birthday party app. Mostly fixed the Dockerfiles so they use Alpine for the base images. That required re-working the Java worker Docker file. Removed links from compose file. cleaned up a few things like a tab instead of a space in app.py --- docker-compose.yml | 13 +++---------- result-app/Dockerfile | 4 ++-- result-app/views/index.html | 2 +- voting-app/Dockerfile | 6 +++--- voting-app/app.py | 3 ++- worker/Dockerfile | 10 +++++++--- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b9a418c..06ec77b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,6 @@ services: - ./voting-app:/app ports: - "5000:80" - links: - - redis networks: - front-tier - back-tier @@ -19,28 +17,25 @@ services: - ./result-app:/app ports: - "5001:80" - links: - - db networks: - front-tier - back-tier worker: build: ./worker - links: - - db - - redis networks: - back-tier redis: - image: redis + image: redis:alpine + container_name: redis ports: ["6379"] networks: - back-tier db: image: postgres:9.4 + container_name: db volumes: - "db-data:/var/lib/postgresql/data" networks: @@ -52,5 +47,3 @@ volumes: networks: front-tier: back-tier: - - diff --git a/result-app/Dockerfile b/result-app/Dockerfile index bf9c002..a93ab6e 100644 --- a/result-app/Dockerfile +++ b/result-app/Dockerfile @@ -1,9 +1,9 @@ -FROM node:0.10 +FROM mhart/alpine-node -RUN mkdir /app WORKDIR /app ADD package.json /app/package.json +RUN npm config set registry http://registry.npmjs.org RUN npm install && npm ls RUN mv /app/node_modules /node_modules diff --git a/result-app/views/index.html b/result-app/views/index.html index c2ae1f9..2a97853 100644 --- a/result-app/views/index.html +++ b/result-app/views/index.html @@ -6,7 +6,7 @@ - + diff --git a/voting-app/Dockerfile b/voting-app/Dockerfile index c7f79d6..1fdec68 100644 --- a/voting-app/Dockerfile +++ b/voting-app/Dockerfile @@ -1,5 +1,5 @@ # Using official python runtime base image -FROM python:2.7 +FROM python:2.7-alpine # Set the application directory WORKDIR /app @@ -11,8 +11,8 @@ RUN pip install -r requirements.txt # Copy our code from the current folder to /app inside the container ADD . /app -# Make port 5000 available for links and/or publish -EXPOSE 80 +# Make port 80 available for links and/or publish +EXPOSE 80 # Define our command to be run when launching the container CMD ["python", "app.py"] diff --git a/voting-app/app.py b/voting-app/app.py index f811045..d2b4b51 100644 --- a/voting-app/app.py +++ b/voting-app/app.py @@ -36,9 +36,10 @@ def hello(): hostname=hostname, vote=vote, )) + resp.headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'; resp.set_cookie('voter_id', voter_id) return resp if __name__ == "__main__": - app.run(host='0.0.0.0', port=80, debug=True) + app.run(host='0.0.0.0', port=80, debug=True) diff --git a/worker/Dockerfile b/worker/Dockerfile index a9611d7..5015993 100644 --- a/worker/Dockerfile +++ b/worker/Dockerfile @@ -1,6 +1,10 @@ -FROM java:7 +FROM java:openjdk-8-jdk-alpine -RUN apt-get update -qq && apt-get install -y maven && apt-get clean +RUN MAVEN_VERSION=3.3.3 \ + && cd /usr/share \ + && wget http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz -O - | tar xzf - \ + && mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven \ + && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn WORKDIR /code @@ -12,4 +16,4 @@ RUN ["mvn", "verify"] ADD src /code/src RUN ["mvn", "package"] -CMD ["/usr/lib/jvm/java-7-openjdk-amd64/bin/java", "-jar", "target/worker-jar-with-dependencies.jar"] +CMD ["java", "-jar", "target/worker-jar-with-dependencies.jar"]