-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #128 from dwyl/deploy-to-flyio
Deploy to Fly.io
- Loading branch information
Showing
26 changed files
with
357 additions
and
7,367 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
assets/node_modules/ | ||
deps/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,3 +38,7 @@ npm-debug.log | |
/priv/static/ | ||
logs.tar.gz | ||
_logs/ | ||
|
||
|
||
id_rsa_fly | ||
id_rsa_fly-cert.pub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
### | ||
### Fist Stage - Building the Release | ||
### | ||
FROM hexpm/elixir:1.12.1-erlang-24.0.1-alpine-3.13.3 AS build | ||
|
||
# install build dependencies | ||
RUN apk add --no-cache build-base npm | ||
|
||
# prepare build dir | ||
WORKDIR /app | ||
|
||
# extend hex timeout | ||
ENV HEX_HTTP_TIMEOUT=20 | ||
|
||
# install hex + rebar | ||
RUN mix local.hex --force && \ | ||
mix local.rebar --force | ||
|
||
# set build ENV as prod | ||
ENV MIX_ENV=prod | ||
ENV SECRET_KEY_BASE=nokey | ||
|
||
# Copy over the mix.exs and mix.lock files to load the dependencies. If those | ||
# files don't change, then we don't keep re-fetching and rebuilding the deps. | ||
COPY mix.exs mix.lock ./ | ||
COPY config config | ||
|
||
RUN mix deps.get --only prod && \ | ||
mix deps.compile | ||
|
||
# install npm dependencies | ||
# COPY assets/package.json assets/package-lock.json ./assets/ | ||
# RUN npm --prefix ./assets ci --progress=false --no-audit --loglevel=error | ||
|
||
COPY priv priv | ||
COPY assets assets | ||
|
||
# NOTE: If using TailwindCSS, it uses a special "purge" step and that requires | ||
# the code in `lib` to see what is being used. Uncomment that here before | ||
# running the npm deploy script if that's the case. | ||
# COPY lib lib | ||
|
||
# build assets | ||
# RUN npm run --prefix ./assets deploy | ||
RUN mix assets.deploy | ||
RUN mix phx.digest | ||
|
||
# copy source here if not using TailwindCSS | ||
COPY lib lib | ||
|
||
# compile and build release | ||
COPY rel rel | ||
RUN mix do compile, release | ||
|
||
### | ||
### Second Stage - Setup the Runtime Environment | ||
### | ||
|
||
# prepare release docker image | ||
FROM alpine:3.13.3 AS app | ||
RUN apk add --no-cache libstdc++ openssl ncurses-libs | ||
|
||
WORKDIR /app | ||
|
||
RUN chown nobody:nobody /app | ||
|
||
USER nobody:nobody | ||
|
||
COPY --from=build --chown=nobody:nobody /app/_build/prod/rel/hits ./ | ||
|
||
ENV HOME=/app | ||
ENV MIX_ENV=prod | ||
ENV SECRET_KEY_BASE=nokey | ||
ENV PORT=4000 | ||
|
||
CMD ["bin/hits", "start"] |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.