basic docker config for development

This commit is contained in:
Mayel 2020-09-10 09:06:11 +02:00
parent 54c1e89352
commit 6ba444f588
5 changed files with 95 additions and 2 deletions

17
.dockerignore Normal file
View file

@ -0,0 +1,17 @@
_build
deps
docs/exdoc
.hex
.mix
.npm
.git
.gitignore
.config
Dockerfile
Makefile
README*
test
priv/static
assets/node_modules
data/search
data/postgres

6
.gitignore vendored
View file

@ -4,8 +4,12 @@
# If you run "mix test --cover", coverage assets end up here.
/cover/
# The directory Mix downloads your dependencies sources to.
# The directories Mix and npm download your dependencies to.
/deps/
/.cache/
/.hex/
/.mix/
/.npm/
# Where 3rd-party dependencies like ExDoc output generated docs.
/doc/

27
Dockerfile.dev Normal file
View file

@ -0,0 +1,27 @@
FROM elixir:1.10.4-alpine
ENV HOME=/opt/app/ TERM=xterm
WORKDIR $HOME
# dev tools
RUN apk update && \
apk add bash curl inotify-tools
# various dependencies of dependencies
RUN apk add git \
rust cargo \
npm \
git build-base \
mailcap \
ca-certificates openssh-client openssl-dev \
tzdata \
gettext
# dependencies for comeonin
RUN apk add cmake make gcc libc-dev
EXPOSE 4000/tcp
EXPOSE 4004/tcp
CMD ["sh","-c","mix local.hex --force && mix local.rebar --force && mix deps.get && npm install --prefix assets && mix ecto.create && mix ecto.migrate && iex -S mix phx.server"]

View file

@ -5,7 +5,7 @@ config :vox_publica, VoxPublica.Repo,
username: "postgres",
password: "postgres",
database: "vox_publica_dev",
hostname: "localhost",
hostname: System.get_env("DATABASE_HOST") || "localhost",
show_sensitive_data_on_connection_error: true,
pool_size: 10

45
docker-compose.yml Normal file
View file

@ -0,0 +1,45 @@
# A Dockerfile for development/testing
version: "3.5"
services:
web:
build:
context: .
dockerfile: "Dockerfile.dev"
ports:
- "4002:4000"
# env_file:
# - config/dev/public.env
# - config/dev/secrets.env
environment:
- DATABASE_HOST=db
depends_on:
- db
# - search
volumes:
- type: bind
source: .
target: /opt/app
stdin_open: true # like docker run -i
tty: true # like docker run -t
db:
image: postgis/postgis:12-3.0-alpine
volumes:
- "./data/postgres/dev:/var/lib/postgresql/data"
# ports:
# - "5432:5432"
environment:
- POSTGRES_PASSWORD=postgres
# env_file:
# - config/dev/public.env
# - config/dev/secrets.envs
# search:
# image: getmeili/meilisearch:latest
# ports:
# - "7702:7700"
# volumes:
# - "./data/search/dev:/data.ms"
# env_file:
# - config/dev/public.env
# - config/dev/secrets.env