-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile.local_deploy
84 lines (68 loc) · 2.11 KB
/
Dockerfile.local_deploy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Build stage 0
FROM erlang:24 as base
ENV DOG_TRAINER_ENV=t1
ENV DOG_TRAINER_AWS_KEY=
ENV DOG_TRAINER_VERSION=
ENV DOG_TRAINER_SMTP_RELAY=
ENV DOG_TRAINER_SMTP_USERNAME=
ENV DOG_TRAINER_SMTP_PASSWORD=
ENV DOG_TRAINER_SMTP_TO=
ENV DOG_TRAINER_SMTP_FROM=
ENV DOG_TRAINER_DB_HOST=rethinkdb
ENV DOG_TRAINER_DB_PORT=28015
ENV DOG_TRAINER_DB_USERNAME=admin
ENV DOG_TRAINER_DB_PASSWORD=
ENV DOG_TRAINER_BROKER_USERNAME=guest
ENV DOG_TRAINER_BROKER_PASSWORD=guest
ENV DOG_TRAINER_BROKER_VIRTUAL_HOST=dog
ENV DOG_TRAINER_CACERTFILE=/etc/dog_trainer/certs/ca.crt
ENV DOG_TRAINER_CERTFILE=/etc/dog_trainer/certs/server.crt
ENV DOG_TRAINER_KEYFILE=/etc/dog_trainer/private/server.key
ENV DOG_TRAINER_BROKER_HOST=rabbitmq
ENV DOG_TRAINER_BROKER_PORT=5673
RUN apt-get update && apt-get install -y less ack lsb-release vim-tiny jq curl
#Set working directory
RUN mkdir /data
WORKDIR /data
COPY rebar.config .
COPY rebar.lock .
COPY rebar3 .
RUN ./rebar3 --version
RUN ./rebar3 get-deps
FROM base as compile
WORKDIR /data
COPY --from=base /data/_build _build/
COPY .git .git/
COPY src src/
COPY priv priv/
COPY config config/
RUN mkdir -p /etc/dog_trainer
#COPY config/sys.config.src config/sys.config.src
COPY include include/
COPY scripts scripts/
ARG cachebust
RUN find /data/_build
#Build the release
RUN ./rebar3 release as local_docker
RUN pwd
RUN find .
FROM compile as deploy
RUN mkdir -p /opt/dog_trainer
RUN mkdir -p /var/log/dog_trainer
RUN mkdir -p /tmp/dog_trainer
# Install the released application
COPY --from=compile /data/_build/default/rel/dog_trainer /opt/dog_trainer
RUN ls -latr /var/log/dog_trainer
# Expose relevant ports
EXPOSE 7070
RUN mkdir /etc/rabbitmq
COPY csc_certs.sh /etc/rabbitmq/
RUN mkdir -p /etc/dog_trainer/certs \
&& mkdir -p /etc/dog_trainer/private \
&& chmod 700 /etc/dog_trainer/private
RUN tar czf /tmp/dog_trainer.tar.gz /opt/dog_trainer
FROM scratch AS tar
COPY --from=deploy /tmp/dog_trainer.tar.gz /
FROM deploy as run
CMD /bin/bash -c "/etc/rabbitmq/csc_certs.sh" && /bin/bash -c "/opt/dog_trainer/bin/dog_trainer foreground"
#CMD /bin/bash -c "/etc/rabbitmq/csc_certs.sh" && /bin/bash -c "sleep infinity"