49 lines
837 B
Docker
49 lines
837 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
##
|
|
## Build
|
|
##
|
|
FROM golang:alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apk update
|
|
RUN apk add --update gcc g++
|
|
RUN apk add --update python3
|
|
RUN apk add --update npm
|
|
|
|
COPY package.json ./package.json
|
|
RUN npm i
|
|
|
|
COPY ./src ./src
|
|
COPY ./gulpfile.js ./gulpfile.js
|
|
COPY ./webpack.config.js ./webpack.config.js
|
|
RUN npx gulp build
|
|
|
|
COPY go.mod .
|
|
COPY go.sum .
|
|
RUN go mod download
|
|
RUN go install github.com/mattn/go-sqlite3
|
|
|
|
COPY . ./
|
|
RUN ls -l
|
|
RUN mkdir bin
|
|
RUN go build -o bin/thomasshop
|
|
|
|
##
|
|
## Deploy
|
|
##
|
|
FROM alpine:latest
|
|
|
|
WORKDIR /
|
|
|
|
COPY --from=build /app/bin/thomasshop /bin
|
|
COPY --from=build /app/dist /dist
|
|
COPY --from=build /app/templates /templates
|
|
RUN echo "#!/bin/ash" > /run.sh
|
|
RUN echo "cp -r /dist/* /outdist" >> /run.sh
|
|
RUN echo "exec /bin/thomasshop" >> /run.sh
|
|
RUN chmod +x /run.sh
|
|
|
|
ENTRYPOINT ["/run.sh"]
|