Skip to content

Commit

Permalink
Merge pull request #670 from WorldBank-Transport/feature/template-con…
Browse files Browse the repository at this point in the history
…tainer-repo-154217004

Template out docker repository
  • Loading branch information
shreshthkhilani authored Feb 5, 2018
2 parents c1829a7 + 94cdaa1 commit d5ce4cd
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 33 deletions.
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
all: app editor web

app:
docker build -f ./app/Dockerfile.base -t quay.io/azavea/driver-app:latest ./app
docker build -f ./app/Dockerfile.development -t quay.io/azavea/driver-app:latest ./app
docker build -f ./app/Dockerfile.base -t driver-app:latest ./app
docker build -f ./app/Dockerfile.development -t driver-app:latest ./app

editor:
docker build -f ./schema_editor/Dockerfile -t quay.io/azavea/driver-editor:latest ./schema_editor
docker build -f ./schema_editor/Dockerfile -t driver-editor:latest ./schema_editor

web:
docker build -f ./web/Dockerfile -t quay.io/azavea/driver-web:latest ./web
docker build -f ./web/Dockerfile -t driver-web:latest ./web

.PHONY: all app editor web
2 changes: 1 addition & 1 deletion app/Dockerfile.development
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM quay.io/azavea/driver-app:latest
FROM driver-app:latest

RUN pip install --no-cache-dir --process-dependency-links --allow-external djsonb -r dev-requirements.txt --src /opt
EXPOSE 8000
Expand Down
7 changes: 6 additions & 1 deletion app/black_spots/tasks/forecast_segment_incidents.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import subprocess
import os

from django.conf import settings

Expand All @@ -18,12 +19,16 @@ def forecast_segment_incidents(segments_csv, output_path):
Returns:
Path of forecast file generated by the R script
"""
analysis_container = 'quay.io/azavea/driver-analysis'
docker_repository = os.environ.get('DOCKER_REPOSITORY')
if docker_repository is not None:
analysis_container = docker_repository + '/driver-analysis'
cmd = ['docker',
'run',
'--rm',
'--volumes-from',
'driver-celery',
'quay.io/azavea/driver-analysis',
analysis_container,
'Rscript',
'blackspot_model.R',
'--outputfile',
Expand Down
1 change: 1 addition & 0 deletions deployment/ansible/group_vars/development
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
## DOCKER SETTINGS
docker_options: "-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --storage-driver=aufs"
docker_repository: ""

## POSTGRESQL SETTINGS
postgresql_host: "{{ lookup('env', 'DRIVER_DATABASE_IP') | default('192.168.12.101', true) }}"
Expand Down
5 changes: 5 additions & 0 deletions deployment/ansible/group_vars/production.example
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ app_version: "0.0.0"
# instances are configured to use https.
app_domain_name: "your.driver-domain.here"

## DOCKER SETTINGS
# The docker repository you want your app to pull images from. The default is "quay.io/azavea/".
# The trailing / is required.
docker_repository: "quay.io/azavea/"

# The *internal* IP address of the hosts for the different components of the web application. DRIVER
# runs on three servers: A database, a web app server, and a Celery (asynchronous tasks) server. If
# your servers have only a single IP address, then use that. If they have multiple IP addresses, use
Expand Down
5 changes: 5 additions & 0 deletions deployment/ansible/group_vars/production.j2
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ app_version: {{ app_version }}
# instances are configured to use https.
app_domain_name: {{ app_domain_name }}

## DOCKER SETTINGS
# The docker repository you want your app to pull images from. The default is "quay.io/azavea/".
# The trailing / is required.
docker_repository: "quay.io/azavea/"

# The *internal* IP address of the hosts for the different components of the web application. DRIVER
# runs on three servers: A database, a web app server, and a Celery (asynchronous tasks) server. If
# your servers have only a single IP address, then use that. If they have multiple IP addresses, use
Expand Down
3 changes: 3 additions & 0 deletions deployment/ansible/group_vars/staging
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,6 @@ ip_addresses_app:
- "{{ hostvars['app']['ansible_ec2_local_ipv4'] }}"
ip_addresses_celery:
- "{{ hostvars['celery']['ansible_ec2_local_ipv4'] }}"

## DOCKER SETTINGS
docker_repository: "quay.io/azavea/"
6 changes: 3 additions & 3 deletions deployment/ansible/roles/driver.app/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@
command: >
docker build
-f {{ root_app_dir }}/Dockerfile.base
-t quay.io/azavea/driver-app:{{ docker_image_tag }}
-t {{ docker_repository }}driver-app:{{ docker_image_tag }}
{{ root_app_dir }}
when: developing

- name: Build application Docker image (dev tools)
command: >
docker build
-f {{ root_app_dir }}/Dockerfile.development
-t quay.io/azavea/driver-app:{{ docker_image_tag }}
-t {{ docker_repository }}driver-app:{{ docker_image_tag }}
{{ root_app_dir }}
when: developing

- name: Pull application Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-app:{{ docker_image_tag }}
command: /usr/bin/docker pull {{ docker_repository }}driver-app:{{ docker_image_tag }}
when: staging or production
notify:
- Restart driver-app
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pre-start script
/usr/bin/docker rm driver-app || true

{% if 'development' not in group_names -%}
/usr/bin/docker pull quay.io/azavea/driver-app:{{ docker_image_tag }}
/usr/bin/docker pull {{ docker_repository }}driver-app:{{ docker_image_tag }}
{% endif %}
end script

Expand All @@ -41,7 +41,7 @@ exec /usr/bin/docker run \
--env DRIVER_ADMIN_GROUP='{{ driver_admin_group }}' \
--log-driver syslog \
{% if celery %} --entrypoint '/bin/bash -c' \
{% endif %} quay.io/azavea/driver-app:{{ docker_image_tag }} {% if celery %} \
{% endif %} {{ docker_repository }}driver-app:{{ docker_image_tag }} {% if celery %} \
celery -A driver worker --queue=path --loglevel=info --concurrency=4
{% endif %}

Expand Down
6 changes: 3 additions & 3 deletions deployment/ansible/roles/driver.celery/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
command: >
docker build
-f {{ root_app_dir }}/Dockerfile.base
-t quay.io/azavea/driver-app:{{ docker_image_tag }}
-t driver-app:{{ docker_image_tag }}
{{ root_app_dir }}
when: developing

- name: Build application Docker image (dev tools)
command: >
docker build
-f {{ root_app_dir }}/Dockerfile.development
-t quay.io/azavea/driver-app:{{ docker_image_tag }}
-t driver-app:{{ docker_image_tag }}
{{ root_app_dir }}
when: developing

- name: Pull application Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-app:{{ docker_image_tag}}
command: /usr/bin/docker pull {{ docker_repository }}driver-app:{{ docker_image_tag}}
when: staging or production
notify:
- Restart driver-celery
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ pre-start script
/usr/bin/docker rm driver-celery || true

{% if 'development' not in group_names -%}
/usr/bin/docker pull quay.io/azavea/driver-app:{{ docker_image_tag }}
/usr/bin/docker pull {{ docker_repository }}driver-app:{{ docker_image_tag }}
{% endif %}
end script

exec /usr/bin/docker run \
--name driver-celery \
--env DOCKER_REPOSITORY={{ docker_repository }} \
--publish 4000:4000 \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume {{ root_static_dir }}:{{ root_static_dir }} \
Expand All @@ -36,7 +37,7 @@ exec /usr/bin/docker run \
{% endfor -%}
--log-driver syslog \
--entrypoint 'celery' \
quay.io/azavea/driver-app:{{ docker_image_tag }} \
{{ docker_repository }}driver-app:{{ docker_image_tag }} \
-A driver worker --queue=taskworker \
--loglevel={% if 'development' in group_names %}debug{% else %}info{% endif %} \
--concurrency=4 \
Expand Down
4 changes: 2 additions & 2 deletions deployment/ansible/roles/driver.gradle/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
command: >
docker build
-f {{ gradle_dir }}/Dockerfile
-t quay.io/azavea/driver-gradle:{{ docker_image_tag }}
-t {{ docker_repository }}driver-gradle:{{ docker_image_tag }}
{{ gradle_dir }}
when: developing

- name: Pull gradle Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-gradle:{{ docker_image_tag }}
command: /usr/bin/docker pull {{ docker_repository }}driver-gradle:{{ docker_image_tag }}
when: staging or production

- name: Configure gradle service definition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pre-start script
/usr/bin/docker rm driver-gradle || true

{% if 'development' not in group_names -%}
/usr/bin/docker pull quay.io/azavea/driver-gradle:{{ docker_image_tag }}
/usr/bin/docker pull {{ docker_repository }}driver-gradle:{{ docker_image_tag }}
{% endif %}
end script

Expand All @@ -28,7 +28,7 @@ exec /usr/bin/docker run \
--env {{ k }}="{{ v }}" \
{% endfor -%}
--log-driver syslog \
quay.io/azavea/driver-gradle:{{ docker_image_tag }}
{{ docker_repository }}driver-gradle:{{ docker_image_tag }}

post-stop script
/usr/bin/docker kill driver-gradle
Expand Down
4 changes: 2 additions & 2 deletions deployment/ansible/roles/driver.r-docker/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
command: >
docker build
-f {{ root_analysis_dir }}/Dockerfile
-t quay.io/azavea/driver-analysis:{{ docker_image_tag }}
-t {{ docker_repository }}driver-analysis:{{ docker_image_tag }}
{{ root_analysis_dir }}
when: developing

- name: Pull application Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-analysis:{{ docker_image_tag }}
command: /usr/bin/docker pull {{ docker_repository }}driver-analysis:{{ docker_image_tag }}
when: staging or production
8 changes: 4 additions & 4 deletions deployment/ansible/roles/driver.web/tasks/development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
command: >
/usr/bin/docker build
-f {{ editor_dir }}/Dockerfile
-t quay.io/azavea/driver-editor:{{ docker_image_tag }}
-t {{ docker_repository }}driver-editor:{{ docker_image_tag }}
{{ editor_dir }}
- name: Build production editor app
Expand All @@ -13,14 +13,14 @@
--name driver-editor
--volume {{ editor_dir }}:{{ editor_dir }}
--log-driver syslog
quay.io/azavea/driver-editor:{{ docker_image_tag }}
{{ docker_repository }}driver-editor:{{ docker_image_tag }}
build
- name: Build web Docker image
command: >
/usr/bin/docker build
-f {{ web_dir }}/Dockerfile
-t quay.io/azavea/driver-web:{{ docker_image_tag }}
-t {{ docker_repository }}driver-web:{{ docker_image_tag }}
{{ web_dir }}
- name: Build production web app
Expand All @@ -31,5 +31,5 @@
--volume {{ editor_dir }}:{{ editor_dir }}
--volume {{ web_dir }}:{{ web_dir }}
--log-driver syslog
quay.io/azavea/driver-web:{{ docker_image_tag }}
{{ docker_repository }}driver-web:{{ docker_image_tag }}
build
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
- name: Pull editor Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-editor:{{ docker_image_tag }}
command: /usr/bin/docker pull {{ docker_repository }}driver-editor:{{ docker_image_tag }}

- name: Build production editor app
command: >
Expand All @@ -10,18 +10,18 @@
--volume {{ editor_scripts_dir }}/config.js:{{ editor_scripts_dir }}/config.js
--volume {{ editor_build_dir }}:{{ editor_build_dir }}
--log-driver syslog
quay.io/azavea/driver-editor:{{ docker_image_tag }}
{{ docker_repository }}driver-editor:{{ docker_image_tag }}
build
- name: Create editor data container
command: >
/usr/bin/docker create
--volume {{ editor_dir }}
--name driver-editor
quay.io/azavea/driver-editor:{{ docker_image_tag }}
{{ docker_repository }}driver-editor:{{ docker_image_tag }}
- name: Pull web Docker image
command: /usr/bin/docker pull quay.io/azavea/driver-web:{{ docker_image_tag }}
command: /usr/bin/docker pull {{ docker_repository }}driver-web:{{ docker_image_tag }}

- name: Build production web app
command: >
Expand All @@ -34,7 +34,7 @@
--volume {{ web_dir }}/app/index.html:{{ web_dir }}/app/index.html
--volume {{ web_build_dir }}:{{ web_build_dir }}
--log-driver syslog
quay.io/azavea/driver-web:{{ docker_image_tag }}
{{ docker_repository }}driver-web:{{ docker_image_tag }}
build
- name: Remove editor data container
Expand Down
4 changes: 2 additions & 2 deletions scripts/grunt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ case "$1" in
PUBLISHED_PORT=9000
LIVERELOAD_PORT=35731
VOLUME_ROOT="/opt/schema_editor"
IMAGE_NAME="quay.io/azavea/driver-editor:latest"
IMAGE_NAME="driver-editor:latest"
;;

web)
CONTAINER_NAME="driver-web"
PUBLISHED_PORT=9001
LIVERELOAD_PORT=35732
VOLUME_ROOT="/opt/web"
IMAGE_NAME="quay.io/azavea/driver-web:latest"
IMAGE_NAME="driver-web:latest"
;;

*)
Expand Down

0 comments on commit d5ce4cd

Please sign in to comment.