forked from xtity/docker-centos7-elixir-phoenix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
53 lines (40 loc) · 1.6 KB
/
Dockerfile
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
########## OS ##########
FROM xtity/docker-centos7-elixir
########## OS ##########
########## PHOENIX ##########
# Expose phoenix app port
EXPOSE ${PHOENIX_APP_PORT}
# Install original phoenixframework
RUN mkdir -p /usr/local/src/phoenix/origin
WORKDIR /usr/local/src/phoenix/origin
RUN git clone https://github.com/phoenixframework/phoenix.git
WORKDIR /usr/local/src/phoenix/origin/phoenix/installer
RUN MIX_ENV=prod mix archive.build
RUN yes | mix archive.install
# Install phoenix app
RUN mkdir -p /usr/local/src/phoenix/app
WORKDIR /usr/local/src/phoenix/app
# Create new phoenix app
RUN mix phoenix.new ${PHOENIX_APP_NAME}
# Clone phoenix app
#RUN git clone ${PHOENIX_APP_REPO}
# Setup phoenix app
WORKDIR /usr/local/src/phoenix/app/${PHOENIX_APP_NAME}
RUN npm install
RUN npm install -g brunch
RUN brunch build
# Add exrm dependency
RUN sed -i "s/\({:cowboy,.*}\)]/\1, {:exrm, \"~> 0.14.16\"}]/g" mix.exs
# Set phoenix server to start automatically
RUN sed -i "s/^config\(.*\).Endpoint,/config \1.Endpoint, server: true,/g" config/prod.exs
# Compile phoenix(FOR dev)
#RUN yes | mix local.hex && yes | mix local.rebar && mix do deps.get, compile
# Compile phoenix(FOR prod)
RUN yes | mix local.hex && yes | mix local.rebar && mix do deps.get && mix phoenix.digest && MIX_ENV=prod mix release
########## PHOENIX ##########
########## ON BOOT ##########
# Run Phoenix on Cowboy server(FOR dev)
#CMD ["/bin/bash", "-c", "mix phoenix.server"]
# Run Phoenix on Cowboy server(FOR prod)
CMD ["/bin/bash", "-c", "PORT=${PHOENIX_APP_PORT} rel/${PHOENIX_APP_NAME}/bin/${PHOENIX_APP_NAME} foreground"]
########## ON BOOT ##########