Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:18-bookworm AS frontend-builder
FROM node:20-bookworm AS frontend-builder

RUN npm install --global --force [email protected]

Expand All @@ -19,6 +19,7 @@ COPY --chown=redash scripts /frontend/scripts
# Controls whether to instrument code for coverage information
ARG code_coverage
ENV BABEL_ENV=${code_coverage:+test}
ENV GITHUB_PAT=${GITHUB_PAT}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can probably now be removed, I don't think it's required.


# Avoid issues caused by lags in disk and network I/O speeds when working on top of QEMU emulation for multi-platform image building.
RUN yarn config set network-timeout 300000
Expand All @@ -37,7 +38,7 @@ RUN <<EOF
fi
EOF

FROM python:3.10-slim-bookworm
FROM python:3.11-slim-bookworm

EXPOSE 5000

Expand Down Expand Up @@ -98,18 +99,18 @@ WORKDIR /app
ENV POETRY_VERSION=1.8.3
ENV POETRY_HOME=/etc/poetry
ENV POETRY_VIRTUALENVS_CREATE=false
ENV PIP_PREFER_BINARY=1
RUN curl -sSL https://install.python-poetry.org | python3 -

# Avoid crashes, including corrupted cache artifacts, when building multi-platform images with GitHub Actions.
RUN /etc/poetry/bin/poetry cache clear pypi --all
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still required?


# Use BuildKit cache mount for Poetry cache to speed up builds
COPY pyproject.toml poetry.lock ./

ARG POETRY_OPTIONS="--no-root --no-interaction --no-ansi"
ARG POETRY_OPTIONS="--no-root --no-ansi --no-interaction"
# for LDAP authentication, install with `ldap3` group
# disabled by default due to GPL license conflict
ARG install_groups="main,all_ds,dev"
RUN /etc/poetry/bin/poetry install --only $install_groups $POETRY_OPTIONS
RUN --mount=type=cache,target=/root/.cache/pypoetry \
/etc/poetry/bin/poetry install --only $install_groups $POETRY_OPTIONS
Copy link
Author

@wtfiwtz wtfiwtz Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repeat builds with poetry install take 10 minutes on Mac M1 2021 Macbook Pro! I got it down to 9-10 seconds through Docker BuildKit caching.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repeat builds with poetry install take 10 minutes on Mac M1 2021 Macbook Pro! I got it down to 9-10 seconds through Docker BuildKit caching.

Very interesting! This might deserve it's own PR


COPY --chown=redash . /app
COPY --from=frontend-builder --chown=redash /frontend/client/dist /app/client/dist
Expand Down
6 changes: 4 additions & 2 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ x-redash-service: &redash-service
context: .
args:
skip_frontend_build: "true" # set to empty string to build
# Enable BuildKit for faster builds with cache mounts
dockerfile: Dockerfile
volumes:
- .:/app
env_file:
- .env
x-redash-environment: &redash-environment
REDASH_HOST: http://localhost:5001
REDASH_HOST: http://localhost:5000
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is 5001 now the default? Restore this.

REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
Expand All @@ -29,7 +31,7 @@ services:
- postgres
- redis
ports:
- "5001:5000"
- "5000:5000"
- "5678:5678"
environment:
<<: *redash-environment
Expand Down
Loading