Skip to content

Instantly share code, notes, and snippets.

@cadecairos
Last active November 20, 2015 18:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cadecairos/22c0cf3788f9960263cd to your computer and use it in GitHub Desktop.
Save cadecairos/22c0cf3788f9960263cd to your computer and use it in GitHub Desktop.
# A postgresql container to store all your dev dataz!
pg:
# cade/webmaker-postgres is a slightly customized version of the official Docker Hub postgres container
image: cade/webmaker-postgres
# Enable host networking for the container - effectively making th containers 'localhost' the same as the host
net: "host"
# Mounts the pg_data folder in this repo to the containers filesystem.
# cade/webmaker-postgres is configured to use /var/lib/postgresql/data/pg_data to store data
volumes:
- ./pg_data:/var/lib/postgresql/data/pg_data
# I don't think I need these with host networking, but it is suppose to bind the containers port (on left) to the host port (on right)
ports:
- "5432:5432"
# A MariaDB container for loginAPI (soon to be removed)
mariadb:
image: mariadb:10
net: "host"
# Docker Compose will load this env file and apply the values to the containers environment
env_file: compose.mariadb.env
# Mounts the mariadb_data folder in this repo to the containers filesystem.
# MariaDB will store your data here!
volumes:
- ./mariadb_data:/var/lib/mysql
ports:
- "3306:3306"
# A Redis cache container, for the caching needs of Webmaker API and ID
redis:
image: redis:3
net: "host"
ports:
- "6379:6379"
# Webmaker API
# Use this image as the base for our new one.
FROM ubuntu:14.04.2
# Specify a maintainer
MAINTAINER Mozilla Foundation <cade@mozillafoundation.org>
# install curl
RUN apt-get update && apt-get install -y \
curl
# Install nodejs LTS PPA
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
# install nodejs LTS
RUN apt-get update && apt-get install -y \
nodejs
# create webmaker user
RUN useradd -d /webmaker webmaker
# set working directory
WORKDIR /webmaker
# Add webmaker-api source code and dependencies
COPY . ./
# copy sample env file
RUN cp env.sample .env
# Expose default webmaker-api port
EXPOSE 2015
# fix permissions :|
RUN chown -R webmaker:webmaker .
# tell docker to run the CMD as this user
USER webmaker
# Command to execute when starting Webmaker API
CMD ["node","server"]
# The Webmaker API image
webmaker:
image: cade/webmaker-api:latest
# Docker Compose will load this env file and apply the values to the containers environment
# This is really useful for customizing the webmaker services configuration
env_file: compose.webmaker.env
net: "host"
# The webmaker ID (OAuth 2) provider
id:
image: cade/webmaker-id:latest
env_file: compose.id.env
net: "host"
# The legacy Webmaker LoginAPI (soon to be deprecated)
loginapi:
image: cade/legacy-webmaker-login:latest
env_file: compose.loginapi.env
net: "host"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment