| 
									
										
										
										
											2022-02-27 13:03:37 +01:00
										 |  |  | # syntax=docker/dockerfile:1.3 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | # stage 1: generate up-to-date swagger.yaml to put in the final container | 
					
						
							| 
									
										
										
										
											2022-09-29 14:41:54 +02:00
										 |  |  | FROM --platform=${BUILDPLATFORM} quay.io/goswagger/swagger:v0.30.0 AS swagger | 
					
						
							| 
									
										
										
										
											2022-02-27 13:03:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | COPY go.mod /go/src/github.com/superseriousbusiness/gotosocial/go.mod | 
					
						
							|  |  |  | COPY go.sum /go/src/github.com/superseriousbusiness/gotosocial/go.sum | 
					
						
							|  |  |  | COPY cmd /go/src/github.com/superseriousbusiness/gotosocial/cmd | 
					
						
							|  |  |  | COPY internal /go/src/github.com/superseriousbusiness/gotosocial/internal | 
					
						
							|  |  |  | WORKDIR /go/src/github.com/superseriousbusiness/gotosocial | 
					
						
							|  |  |  | RUN swagger generate spec -o /go/src/github.com/superseriousbusiness/gotosocial/swagger.yaml --scan-models | 
					
						
							| 
									
										
										
										
											2021-07-27 14:45:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | # stage 2: generate the web/assets/dist bundles | 
					
						
							|  |  |  | FROM --platform=${BUILDPLATFORM} node:16.15.1-alpine3.15 AS bundler | 
					
						
							| 
									
										
										
										
											2021-07-27 14:45:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | COPY web web | 
					
						
							|  |  |  | RUN yarn install --cwd web/source && \ | 
					
						
							|  |  |  |     BUDO_BUILD=1 node web/source  && \ | 
					
						
							|  |  |  |     rm -r web/source | 
					
						
							| 
									
										
										
										
											2021-07-27 14:45:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | # stage 3: build the executor container | 
					
						
							|  |  |  | FROM --platform=${TARGETPLATFORM} alpine:3.15.4 as executor | 
					
						
							| 
									
										
										
										
											2021-05-23 23:43:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | # copy the dist binary created by goreleaser or build.sh | 
					
						
							| 
									
										
										
										
											2022-02-27 13:03:37 +01:00
										 |  |  | COPY --chown=1000:1000 gotosocial /gotosocial/gotosocial | 
					
						
							| 
									
										
										
										
											2021-05-23 23:43:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | # copy over the web directories with templates, assets etc | 
					
						
							|  |  |  | COPY --chown=1000:1000 --from=bundler web /gotosocial/web | 
					
						
							|  |  |  | COPY --chown=1000:1000 --from=swagger /go/src/github.com/superseriousbusiness/gotosocial/swagger.yaml web/assets/swagger.yaml | 
					
						
							| 
									
										
										
										
											2021-05-23 23:43:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-27 13:03:37 +01:00
										 |  |  | WORKDIR "/gotosocial" | 
					
						
							| 
									
										
										
										
											2021-05-23 23:43:04 +02:00
										 |  |  | ENTRYPOINT [ "/gotosocial/gotosocial", "server", "start" ] |