-
Notifications
You must be signed in to change notification settings - Fork 55
/
Dockerfile
39 lines (31 loc) · 882 Bytes
/
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
FROM elixir:1.16.1
# Build Args
ARG PHOENIX_VERSION=1.7.12
ARG NODE_VERSION=20.10.0
# Dependencies
RUN apt update \
&& apt upgrade -y \
&& apt install -y bash curl git build-essential inotify-tools
# NodeJS
ENV NVM_DIR /opt/nvm
RUN mkdir -p ${NVM_DIR} \
&& curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE_VERSION} \
&& nvm alias default ${NODE_VERSION} \
&& nvm use default \
&& npm install -g yarn
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# Phoenix
RUN mix local.hex --force
RUN mix archive.install --force hex phx_new ${PHOENIX_VERSION}
RUN mix local.rebar --force
# App Directory
ENV APP_HOME /app
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
# App Port
EXPOSE 4000
# Default Command
CMD ["mix", "phx.server"]