Instead of trying to match the albums host with current host (which always fails in path-based routing), use a dummy domain 'albums.localhost.invalid' that will never match the actual host. This prevents the automatic redirect to /shared-albums. Version bump to 0.3.2 Co-Authored-By: Claude <noreply@anthropic.com>
112 lines
4.2 KiB
Docker
112 lines
4.2 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG ENTE_GIT_REF=main
|
|
|
|
FROM debian:bookworm AS ente-source
|
|
ARG ENTE_GIT_REF
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends ca-certificates git && \
|
|
git clone --depth=1 --branch "${ENTE_GIT_REF}" https://github.com/ente-io/ente.git /src && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM golang:1.24-bookworm AS museum-builder
|
|
COPY --from=ente-source /src /ente
|
|
WORKDIR /ente/server
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends build-essential pkg-config libsodium-dev && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
RUN mkdir -p /build/museum && \
|
|
CGO_ENABLED=1 GOOS=linux go build -o /build/museum/museum ./cmd/museum && \
|
|
for dir in migrations web-templates mail-templates assets; do \
|
|
rm -rf "/build/museum/$dir"; \
|
|
if [ -d "$dir" ]; then \
|
|
cp -r "$dir" "/build/museum/$dir"; \
|
|
else \
|
|
mkdir -p "/build/museum/$dir"; \
|
|
fi; \
|
|
done
|
|
|
|
FROM golang:1.24-bookworm AS cli-builder
|
|
COPY --from=ente-source /src /ente
|
|
WORKDIR /ente/cli
|
|
RUN go build -o /build/ente .
|
|
|
|
FROM node:20-bookworm-slim AS web-builder
|
|
ENV NEXT_PUBLIC_ENTE_ENDPOINT=ENTE_API_ORIGIN_PLACEHOLDER
|
|
ENV NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=https://albums.localhost.invalid
|
|
COPY --from=ente-source /src /ente
|
|
WORKDIR /ente/web
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends build-essential python3 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
RUN corepack enable
|
|
RUN yarn install --network-timeout 1000000
|
|
RUN mkdir -p /build/web/photos /build/web/accounts /build/web/auth /build/web/cast /build/web/albums /build/web/family
|
|
RUN set -e; \
|
|
yarn build:photos; \
|
|
yarn build:accounts; \
|
|
yarn build:auth; \
|
|
yarn build:cast
|
|
RUN if [ -d "apps" ]; then \
|
|
for app in photos accounts auth cast; do \
|
|
if [ -d "apps/${app}/out" ]; then \
|
|
rm -rf "/build/web/${app}"; \
|
|
mkdir -p "/build/web/${app}"; \
|
|
cp -r "apps/${app}/out/." "/build/web/${app}/"; \
|
|
else \
|
|
printf 'Missing build output for %s\n' "${app}"; \
|
|
printf '<html><body><h1>Ente %s</h1><p>Build output missing.</p></body></html>\n' "${app}" > "/build/web/${app}/index.html"; \
|
|
fi; \
|
|
done; \
|
|
else \
|
|
for app in photos accounts auth cast; do \
|
|
printf '<html><body><h1>Ente %s</h1><p>Build output missing.</p></body></html>\n' "${app}" > "/build/web/${app}/index.html"; \
|
|
done; \
|
|
fi && \
|
|
rm -rf /build/web/albums /build/web/family && \
|
|
cp -r /build/web/photos /build/web/albums && \
|
|
cp -r /build/web/photos /build/web/family
|
|
|
|
FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
|
|
|
|
ENV APP_DIR=/app/code \
|
|
DATA_DIR=/app/data \
|
|
HOME=/app/data/home
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends ca-certificates curl jq libsodium23 pkg-config postgresql-client caddy openssl && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir -p /app/pkg /app/web "$HOME" && chown -R cloudron:cloudron /app /app/web "$HOME"
|
|
|
|
COPY --from=ente-source /src ${APP_DIR}
|
|
RUN rm -rf ${APP_DIR}/.git
|
|
|
|
RUN mkdir -p /app/museum-bin
|
|
COPY --from=museum-builder /build/museum/museum /app/museum-bin/museum
|
|
COPY --from=museum-builder /build/museum/migrations ${APP_DIR}/server/migrations
|
|
COPY --from=museum-builder /build/museum/web-templates ${APP_DIR}/server/web-templates
|
|
COPY --from=museum-builder /build/museum/mail-templates ${APP_DIR}/server/mail-templates
|
|
COPY --from=museum-builder /build/museum/assets ${APP_DIR}/server/assets
|
|
RUN chmod +x /app/museum-bin/museum
|
|
|
|
COPY --from=cli-builder /build/ente /app/code/ente
|
|
RUN ln -sf /app/code/ente /usr/local/bin/ente && chmod +x /app/code/ente
|
|
|
|
COPY --from=web-builder /build/web/photos /app/web/photos
|
|
COPY --from=web-builder /build/web/accounts /app/web/accounts
|
|
COPY --from=web-builder /build/web/auth /app/web/auth
|
|
COPY --from=web-builder /build/web/cast /app/web/cast
|
|
COPY --from=web-builder /build/web/albums /app/web/albums
|
|
COPY --from=web-builder /build/web/family /app/web/family
|
|
|
|
COPY start.sh /app/pkg/start.sh
|
|
COPY admin-helper.sh /app/pkg/admin-helper.sh
|
|
COPY admin-helper-direct.sh /app/pkg/admin-helper-direct.sh
|
|
|
|
RUN chmod +x /app/pkg/start.sh /app/pkg/admin-helper.sh /app/pkg/admin-helper-direct.sh
|
|
|
|
EXPOSE 3080 8080
|
|
|
|
CMD ["/app/pkg/start.sh"]
|