Skip to content

Instantly share code, notes, and snippets.

@gjaldon
Created March 11, 2019 03:55
Show Gist options
  • Save gjaldon/0ab3af766208126410bbbfaecc0f9f4e to your computer and use it in GitHub Desktop.
Save gjaldon/0ab3af766208126410bbbfaecc0f9f4e to your computer and use it in GitHub Desktop.
# client/Dockerfile
FROM node:6.9.5-alpine
RUN apk --update add git openssh build-base python
RUN npm install -g webpack
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir /client/ && cp -a /tmp/node_modules /client/
WORKDIR /client/
ADD . /client/
EXPOSE 3000
CMD ["npm", "run", "start"]
# server/Dockerfile
FROM alpine:3.5
RUN apk --update add erlang && rm -rf /var/cache/apk/*
ENV ELIXIR_VERSION 1.4.0
RUN apk --update add --virtual build-dependencies wget ca-certificates && \
wget --no-check-certificate https://github.com/elixir-lang/elixir/releases/download/v${ELIXIR_VERSION}/Precompiled.zip && \
mkdir -p /opt/elixir-${ELIXIR_VERSION}/ && \
unzip Precompiled.zip -d /opt/elixir-${ELIXIR_VERSION}/ && \
rm Precompiled.zip && \
apk del build-dependencies && \
rm -rf /etc/ssl && \
rm -rf /var/cache/apk/*
ENV PATH $PATH:/opt/elixir-${ELIXIR_VERSION}/bin
RUN mkdir /server && chmod -R 777 /server && \
apk --no-cache add git build-base \
erlang-dev erlang-parsetools erlang-syntax-tools \
erlang-xmerl erlang-ssl erlang-inets erlang-public-key erlang-edoc \
erlang-eunit erlang-tools erlang-common-test erlang-crypto erlang-asn1 && \
mix local.hex --force && mix local.rebar --force
ADD . /server/
WORKDIR /server/
RUN mix do deps.get, compile
CMD ["mix", "phoenix.server"]
version: '2'
services:
api:
build: server/
env_file:
- secrets.env
command: mix phoenix.server
volumes:
- ./server/:/server
- /server/deps
- /server/_build
ports:
- "4000:4000"
depends_on:
- db
- rabbitmq
- client
client:
build: client/
command: npm run start
volumes:
- ./client/:/client
- /client/node_modules
ports:
- "3000:3000"
- "35729:35729"
db:
image: postgres:9.4.10-alpine
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
rabbitmq:
image: rabbitmq:3.6-management
ports:
- "5672:5672"
- "15672:15672"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment