2026-03-10 18:12:12 +08:00
|
|
|
FROM --platform=$BUILDPLATFORM node:20.20.1 AS FRONT
|
2021-08-11 21:39:34 +08:00
|
|
|
WORKDIR /web
|
|
|
|
|
|
2026-01-11 16:23:45 +08:00
|
|
|
# Copy only dependency files first for better caching
|
|
|
|
|
COPY ./web/package.json ./web/yarn.lock ./
|
|
|
|
|
RUN yarn install --frozen-lockfile --network-timeout 1000000
|
|
|
|
|
|
|
|
|
|
# Copy source files and build
|
|
|
|
|
COPY ./web .
|
|
|
|
|
RUN NODE_OPTIONS="--max-old-space-size=4096" yarn run build
|
2021-12-22 21:58:25 +08:00
|
|
|
|
2026-03-25 11:51:27 -05:00
|
|
|
FROM --platform=$BUILDPLATFORM golang:1.25.8 AS BACK
|
2022-06-29 23:21:18 +08:00
|
|
|
WORKDIR /go/src/casdoor
|
2026-01-11 16:23:45 +08:00
|
|
|
|
|
|
|
|
# Copy only go.mod and go.sum first for dependency caching
|
|
|
|
|
COPY go.mod go.sum ./
|
|
|
|
|
RUN go mod download
|
|
|
|
|
|
|
|
|
|
# Copy source files
|
2022-06-29 23:21:18 +08:00
|
|
|
COPY . .
|
2026-01-11 16:23:45 +08:00
|
|
|
|
2022-06-29 23:21:18 +08:00
|
|
|
RUN ./build.sh
|
|
|
|
|
|
|
|
|
|
FROM alpine:latest AS STANDARD
|
2021-12-22 21:58:25 +08:00
|
|
|
LABEL MAINTAINER="https://casdoor.org/"
|
2022-10-21 17:19:58 +08:00
|
|
|
ARG USER=casdoor
|
2024-05-25 19:22:49 +02:00
|
|
|
ARG TARGETOS
|
|
|
|
|
ARG TARGETARCH
|
|
|
|
|
ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}"
|
2022-06-29 23:21:18 +08:00
|
|
|
|
2022-07-09 17:36:56 +08:00
|
|
|
RUN sed -i 's/https/http/' /etc/apk/repositories
|
2022-10-21 17:19:58 +08:00
|
|
|
RUN apk add --update sudo
|
2024-04-07 14:27:45 +08:00
|
|
|
RUN apk add tzdata
|
2022-07-09 17:36:56 +08:00
|
|
|
RUN apk add curl
|
|
|
|
|
RUN apk add ca-certificates && update-ca-certificates
|
|
|
|
|
|
2022-10-21 17:19:58 +08:00
|
|
|
RUN adduser -D $USER -u 1000 \
|
|
|
|
|
&& echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER \
|
|
|
|
|
&& chmod 0440 /etc/sudoers.d/$USER \
|
|
|
|
|
&& mkdir logs \
|
|
|
|
|
&& chown -R $USER:$USER logs
|
|
|
|
|
|
|
|
|
|
USER 1000
|
2022-07-07 16:10:15 +08:00
|
|
|
WORKDIR /
|
2024-05-25 19:22:49 +02:00
|
|
|
COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/server_${BUILDX_ARCH} ./server
|
2022-10-21 17:19:58 +08:00
|
|
|
COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/swagger ./swagger
|
|
|
|
|
COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/conf/app.conf ./conf/app.conf
|
|
|
|
|
COPY --from=FRONT --chown=$USER:$USER /web/build ./web/build
|
|
|
|
|
|
2024-09-23 22:19:27 +08:00
|
|
|
ENTRYPOINT ["/server"]
|
2022-06-29 23:21:18 +08:00
|
|
|
|
|
|
|
|
|
2026-02-02 00:13:14 +08:00
|
|
|
FROM debian:latest AS ALLINONE
|
2021-08-11 21:39:34 +08:00
|
|
|
LABEL MAINTAINER="https://casdoor.org/"
|
2024-05-25 19:22:49 +02:00
|
|
|
ARG TARGETOS
|
|
|
|
|
ARG TARGETARCH
|
|
|
|
|
ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}"
|
2021-08-11 21:39:34 +08:00
|
|
|
|
2022-07-09 17:36:56 +08:00
|
|
|
RUN apt update
|
2026-02-02 23:51:49 +08:00
|
|
|
RUN apt install -y ca-certificates lsof && update-ca-certificates
|
2022-06-29 23:21:18 +08:00
|
|
|
|
2022-07-07 16:10:15 +08:00
|
|
|
WORKDIR /
|
2024-05-25 19:22:49 +02:00
|
|
|
COPY --from=BACK /go/src/casdoor/server_${BUILDX_ARCH} ./server
|
2022-06-29 23:21:18 +08:00
|
|
|
COPY --from=BACK /go/src/casdoor/swagger ./swagger
|
|
|
|
|
COPY --from=BACK /go/src/casdoor/docker-entrypoint.sh /docker-entrypoint.sh
|
|
|
|
|
COPY --from=BACK /go/src/casdoor/conf/app.conf ./conf/app.conf
|
|
|
|
|
COPY --from=FRONT /web/build ./web/build
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["/bin/bash"]
|
|
|
|
|
CMD ["/docker-entrypoint.sh"]
|