mirror of https://github.com/knative/docs.git
39 lines
1.0 KiB
Docker
39 lines
1.0 KiB
Docker
FROM elixir:1.6.6-alpine
|
|
|
|
ARG APP_NAME=hello
|
|
ARG PHOENIX_SUBDIR=.
|
|
ENV MIX_ENV=prod REPLACE_OS_VARS=true TERM=xterm
|
|
WORKDIR /opt/app
|
|
RUN apk update \
|
|
&& apk --no-cache --update add nodejs nodejs-npm \
|
|
&& mix local.rebar --force \
|
|
&& mix local.hex --force
|
|
COPY . .
|
|
|
|
RUN mix do deps.get, deps.compile, compile
|
|
RUN cd ${PHOENIX_SUBDIR}/assets \
|
|
&& npm install \
|
|
&& ./node_modules/brunch/bin/brunch build -p \
|
|
&& cd .. \
|
|
&& mix phx.digest
|
|
RUN mix release --env=prod --verbose \
|
|
&& mv _build/prod/rel/${APP_NAME} /opt/release \
|
|
&& mv /opt/release/bin/${APP_NAME} /opt/release/bin/start_server
|
|
|
|
FROM alpine:latest
|
|
RUN apk update && apk --no-cache --update add bash openssl-dev ca-certificates
|
|
|
|
RUN addgroup -g 1000 appuser && \
|
|
adduser -S -u 1000 -G appuser appuser
|
|
|
|
RUN mkdir -p /opt/app/var
|
|
RUN chown appuser /opt/app/var
|
|
|
|
USER appuser
|
|
|
|
ENV MIX_ENV=prod REPLACE_OS_VARS=true
|
|
WORKDIR /opt/app
|
|
COPY --from=0 /opt/release .
|
|
ENV RUNNER_LOG_DIR /var/log
|
|
CMD ["/opt/app/bin/start_server", "foreground", "boot_var=/tmp"]
|