| 
									
										
										
										
											2021-09-09 23:04:47 +00:00
										 |  |  | FROM elixir:1.12.3-alpine AS elixir-builder | 
					
						
							| 
									
										
										
										
											2020-12-18 20:10:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-05 01:06:16 +00:00
										 |  |  | RUN apk add git | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-18 20:10:25 +00:00
										 |  |  | RUN mix local.hex --force \ | 
					
						
							|  |  |  |   && mix local.rebar --force | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EXPOSE 4000 | 
					
						
							| 
									
										
										
										
											2021-05-28 17:38:37 +00:00
										 |  |  | # Default EPMD port | 
					
						
							|  |  |  | EXPOSE 4369 | 
					
						
							| 
									
										
										
										
											2020-12-18 20:10:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ARG MIX_ENV=prod | 
					
						
							|  |  |  | RUN echo ${MIX_ENV} | 
					
						
							|  |  |  | ENV MIX_ENV=$MIX_ENV | 
					
						
							|  |  |  | ENV PORT=4000 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-22 17:47:16 +00:00
										 |  |  | WORKDIR /root/app | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-26 22:31:54 +00:00
										 |  |  | # We load these things one by one so that we can load the deps first and | 
					
						
							|  |  |  | #   cache those layers, before we do the app build itself | 
					
						
							| 
									
										
										
										
											2021-09-26 22:40:56 +00:00
										 |  |  | ADD ./priv ./priv | 
					
						
							| 
									
										
										
										
											2021-06-10 21:23:48 +00:00
										 |  |  | ADD ./mix.exs ./mix.lock ./ | 
					
						
							|  |  |  | ADD ./config ./config | 
					
						
							|  |  |  | ADD ./apps/admin/mix.exs ./apps/admin/ | 
					
						
							|  |  |  | ADD ./apps/app/mix.exs ./apps/app/ | 
					
						
							|  |  |  | ADD ./apps/content/mix.exs ./apps/content/ | 
					
						
							|  |  |  | ADD ./apps/core/mix.exs ./apps/core/ | 
					
						
							| 
									
										
										
										
											2021-10-22 03:46:19 +00:00
										 |  |  | ADD ./apps/object_storage/mix.exs ./apps/object_storage/ | 
					
						
							| 
									
										
										
										
											2021-06-10 21:23:48 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-18 20:10:25 +00:00
										 |  |  | RUN mix deps.get | 
					
						
							| 
									
										
										
										
											2021-10-20 21:48:30 +00:00
										 |  |  | RUN mix deps.compile | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ADD ./apps /root/app/apps | 
					
						
							| 
									
										
										
										
											2020-12-22 17:47:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-26 22:31:54 +00:00
										 |  |  | # Leave off here so that we can built assets and compile the elixir app in parallel | 
					
						
							| 
									
										
										
										
											2020-12-18 20:10:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-23 23:04:09 +00:00
										 |  |  | FROM node:16.10.0 AS asset-builder | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-26 22:31:54 +00:00
										 |  |  | # Build assets in a node container | 
					
						
							| 
									
										
										
										
											2021-04-24 16:20:17 +00:00
										 |  |  | ADD ./apps/app/assets/ /root/app/apps/app/assets/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | WORKDIR /root/app/apps/app/assets/ | 
					
						
							| 
									
										
										
										
											2021-01-08 20:02:09 +00:00
										 |  |  | COPY --from=0 /root/app/ /root/app/ | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | RUN npm install | 
					
						
							| 
									
										
										
										
											2021-10-20 21:48:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ADD ./apps /root/app/apps | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | RUN npm run deploy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-10 21:06:38 +00:00
										 |  |  | FROM elixir-builder | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-24 16:20:17 +00:00
										 |  |  | ADD ./apps /root/app/apps | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-26 22:31:54 +00:00
										 |  |  | # Resume compilation of the elixir app | 
					
						
							|  |  |  | RUN MAKE=cmake mix compile | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-26 22:31:54 +00:00
										 |  |  | # Copy in the built assets & fingerprint them | 
					
						
							| 
									
										
										
										
											2021-06-10 21:23:48 +00:00
										 |  |  | COPY --from=asset-builder /root/app/apps/app/priv/static/ /root/app/apps/app/priv/static | 
					
						
							| 
									
										
										
										
											2021-01-08 18:47:00 +00:00
										 |  |  | RUN mix phx.digest | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-28 17:38:37 +00:00
										 |  |  | CMD elixir --name ${NAME:=legendary}@$(hostname -f) -S mix phx.server |