From 0f1ec4921690f24b193b3e12d015f7e600760ff0 Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 17 Jul 2026 07:56:59 +0700 Subject: [PATCH] fix(compose): force api build to avoid stale published image (#48) Set pull_policy: build on the api service so docker compose up always builds from apps/api/Dockerfile instead of pulling the stale 2024-09-06 trieve/firecrawl:latest image (corepack signature failure). Reconcile README and SELF_HOST.md with the build-from-source path. --- README.md | 5 +++++ SELF_HOST.md | 12 ++++++++++-- docker-compose.yaml | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b57bc2bbf3..2d9e0a8924 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,11 @@ Fire-engine, Firecrawl's solution for anti-bot pages, being closed source is the ## How to self host? +> **Warning — published Docker images are currently stale.** +> The `trieve/firecrawl` and `trieve/puppeteer-service-ts` images on Docker Hub were last published in September 2024 and no longer start because the bundled `corepack` predates npm's registry signing-key rotation (`Cannot find matching keyid`). There is no release-triggered publish workflow in this repo, so `:latest` and the pinned tags below have drifted. +> +> **To self-host today, build from source instead of pulling published images.** Clone this repo and run `docker compose up -d` from the repo root — the `docker-compose.yaml` is wired for local builds (the `api` service sets `pull_policy: build` so it always builds from `apps/api/Dockerfile` and never pulls). See [`SELF_HOST.md`](./SELF_HOST.md) for the full walkthrough. The snippet below will work as-is once the images are republished. + You should add the following services to your docker-compose as follows. We trust that you can configure Kubernetes or other hosting solutions to run these services. ```yaml diff --git a/SELF_HOST.md b/SELF_HOST.md index 0dc753b594..4d18009311 100644 --- a/SELF_HOST.md +++ b/SELF_HOST.md @@ -74,11 +74,19 @@ PLAYWRIGHT_MICROSERVICE_URL= # set if you'd like to run a playwright fallback * Don't forget to set the proxy server in your `.env` file as needed. -4. Build and run the Docker containers: +4. Build and run the Docker containers. + + The `api` service in `docker-compose.yaml` sets `pull_policy: build`, so Compose builds it from `apps/api/Dockerfile` and never pulls the stale published `trieve/firecrawl:latest` image (see issue [#48](https://github.com/devflowinc/firecrawl-simple/issues/48)). `docker compose up -d` is enough: + ```bash + docker compose up -d + ``` + + If you prefer, the explicit two-step form is equivalent: + ```bash docker compose build - docker compose up + docker compose up -d ``` This will run a local instance of Firecrawl which can be accessed at `http://localhost:3002`. diff --git a/docker-compose.yaml b/docker-compose.yaml index 5b98cfecce..b9f4de58eb 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -38,6 +38,7 @@ services: api: image: trieve/firecrawl <<: *common-service + pull_policy: build depends_on: - redis - puppeteer-service