forked from shibao/cannery
		
	add touchless docker deploys
This commit is contained in:
		
							
								
								
									
										53
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| FROM elixir:1.12.2-alpine AS build | ||||
|  | ||||
| # install build dependencies | ||||
| RUN apk add --no-cache build-base npm git python3 | ||||
|  | ||||
| # prepare build dir | ||||
| WORKDIR /app | ||||
|  | ||||
| # install hex + rebar | ||||
| RUN mix local.hex --force && \ | ||||
|     mix local.rebar --force | ||||
|  | ||||
| # set build ENV | ||||
| ENV MIX_ENV=prod | ||||
|  | ||||
| # install mix dependencies | ||||
| COPY mix.exs mix.lock ./ | ||||
| COPY config config | ||||
| RUN mix do deps.get, deps.compile | ||||
|  | ||||
| # build assets | ||||
| COPY assets/package.json assets/package-lock.json ./assets/ | ||||
| RUN npm --prefix ./assets ci --progress=false --no-audit --loglevel=error | ||||
|  | ||||
| COPY lib lib | ||||
| COPY priv priv | ||||
| COPY assets assets | ||||
| RUN npm run --prefix ./assets deploy | ||||
| RUN mix phx.digest | ||||
|  | ||||
| # compile and build release | ||||
| # uncomment COPY if rel/ exists | ||||
| # COPY rel rel | ||||
| RUN mix do compile, release | ||||
|  | ||||
| # prepare release image | ||||
| FROM alpine:3.9 AS app | ||||
|  | ||||
| RUN apk upgrade --no-cache && \ | ||||
|     apk add --no-cache bash openssl libgcc libstdc++ ncurses-libs | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| RUN chown nobody:nobody /app | ||||
|  | ||||
| USER nobody:nobody | ||||
|  | ||||
| COPY --from=build --chown=nobody:nobody /app/_build/prod/rel/cannery ./ | ||||
| COPY --from=build --chown=nobody:nobody /app/priv /app/priv | ||||
|  | ||||
| ENV HOME=/app | ||||
|  | ||||
| CMD ["bin/cannery", "start"] | ||||
		Reference in New Issue
	
	Block a user