2023-01-10 01:35:33 +01:00
|
|
|
FROM node:lts as ui-builder
|
2022-12-12 19:05:23 +01:00
|
|
|
|
2023-01-10 01:26:39 +01:00
|
|
|
### Copy Vue.js code
|
|
|
|
WORKDIR /app
|
2022-12-12 19:05:23 +01:00
|
|
|
COPY webui webui
|
|
|
|
|
2023-01-10 01:26:39 +01:00
|
|
|
### Build Vue.js into plain HTML/CSS/JS
|
|
|
|
WORKDIR /app/webui
|
2023-05-31 13:04:58 +02:00
|
|
|
RUN npm i
|
2023-01-25 19:04:51 +01:00
|
|
|
RUN npm run build-embed
|
2022-12-12 19:05:23 +01:00
|
|
|
|
2023-01-10 01:26:39 +01:00
|
|
|
FROM golang:1.19.1 AS builder
|
2022-12-12 19:05:23 +01:00
|
|
|
|
|
|
|
### Copy Go code
|
2023-01-10 01:26:39 +01:00
|
|
|
WORKDIR /src/
|
2022-12-12 19:05:23 +01:00
|
|
|
COPY . .
|
2023-01-10 01:35:33 +01:00
|
|
|
COPY --from=ui-builder /app/webui webui
|
2022-12-12 19:05:23 +01:00
|
|
|
|
2023-01-10 01:26:39 +01:00
|
|
|
### Build executables
|
|
|
|
RUN go build -tags webui -o /app/webapi ./cmd/webapi
|
2022-12-12 19:05:23 +01:00
|
|
|
|
|
|
|
|
2023-01-10 01:26:39 +01:00
|
|
|
### Create final container
|
|
|
|
FROM debian:bullseye
|
2022-12-12 19:05:23 +01:00
|
|
|
|
|
|
|
### Inform Docker about which port is used
|
|
|
|
EXPOSE 3000 4000
|
|
|
|
|
|
|
|
### Copy the build executable from the builder image
|
|
|
|
WORKDIR /app/
|
2023-01-10 01:26:39 +01:00
|
|
|
COPY --from=builder /app/webapi ./
|
2022-12-12 19:05:23 +01:00
|
|
|
|
|
|
|
### Executable command
|
2023-05-31 13:04:58 +02:00
|
|
|
CMD ["/app/webapi", "--db-filename", "/data/wasaphoto.db", "--data-path", "/data/data"]
|