mirror of
https://github.com/balzack/databag.git
synced 2025-03-13 00:50:03 +00:00
46 lines
1.3 KiB
Docker
46 lines
1.3 KiB
Docker
|
FROM node:22-alpine AS node
|
||
|
WORKDIR /app
|
||
|
|
||
|
# Download the node dependencies first before adding the rest for caching
|
||
|
COPY ./net/web/package.json ./net/web/yarn.lock ./
|
||
|
RUN --mount=type=cache,target=/root/.yarn YARN_CACHE_FOLDER=/root/.yarn \
|
||
|
yarn --frozen-lockfile
|
||
|
|
||
|
COPY ./net/web/ ./
|
||
|
RUN --mount=type=cache,target=/root/.yarn YARN_CACHE_FOLDER=/root/.yarn \
|
||
|
yarn run build
|
||
|
|
||
|
FROM golang:alpine AS go
|
||
|
EXPOSE 7000
|
||
|
WORKDIR /app/databag
|
||
|
|
||
|
RUN apk add --no-cache build-base imagemagick sqlite ffmpeg curl
|
||
|
|
||
|
RUN mkdir -p /opt/databag
|
||
|
RUN mkdir -p /var/lib/databag
|
||
|
RUN mkdir -p /app/databag/net
|
||
|
|
||
|
COPY ./net/server /app/databag/net/server
|
||
|
COPY ./net/transform /opt/databag/transform
|
||
|
|
||
|
WORKDIR /app/databag/net/server
|
||
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
||
|
if [ -n "${DATABAG_GOARCH}" ]; then GOARCH=${DATABAG_GOARCH}; fi; \
|
||
|
if [ -n "${DATABAG_GOOS}" ]; then GOOS=${DATABAG_GOOS}; fi; \
|
||
|
go mod download
|
||
|
|
||
|
ARG DATABAG_GOARCH
|
||
|
ARG DATABAG_GOOS
|
||
|
|
||
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
||
|
if [ -n "${DATABAG_GOARCH}" ]; then GOARCH=${DATABAG_GOARCH}; fi; \
|
||
|
if [ -n "${DATABAG_GOOS}" ]; then GOOS=${DATABAG_GOOS}; fi; \
|
||
|
CGO_ENABLED=1 go build -o databag .
|
||
|
|
||
|
COPY --from=node /app/build /app/databag/net/web/build
|
||
|
|
||
|
ENV DEV=0
|
||
|
ENV ADMIN=password
|
||
|
|
||
|
ENTRYPOINT /app/databag/net/server/entrypoint.sh
|