Skip to content

Respect Dockerfile location form Actor.json - #27

Merged
Pijukatel merged 10 commits into
v2-poc-requirementsfrom
claude/docker-file-location-actor-drx6jx
Aug 26, 2026
Merged

Respect Dockerfile location form Actor.json#27
Pijukatel merged 10 commits into
v2-poc-requirementsfrom
claude/docker-file-location-actor-drx6jx

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

No description provided.

Pijukatel and others added 8 commits August 25, 2026 13:19
Mirror the platform's resolution order (apify-worker ensureDockerfileExists):
the actor.json dockerfile field relative to the .actor dir (escape-checked,
warn-and-fall-through when it names nothing, invalid-format failure when
non-string), then .actor/Dockerfile, then root Dockerfile, then the bundled
platform default. The resolved path is always passed to docker.buildImage as
its dockerfile option; previously the driver relied on Docker's implicit root
Dockerfile only, so Actors with .actor/Dockerfile (like sample_actor_crawler)
could not build.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
Rewrite comments and test titles to stand on their own (or cite
requirements/actor-driver.md) instead of referencing external design notes;
add integration tests covering runBuildInBackground's resolver wiring
(failure -> FAILED without a driver call, default -> injected Dockerfile
reaches the driver ctx without touching persisted sourceFiles, resolved ->
path passthrough); move normalizeEntryName into src/driver/tar-entry-name.ts
so the driver layer no longer imports from services.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
…tions

requirements/test.md now names all three base images the e2e suite pulls
(python:3.11-slim joined for sample_actor_crawler); two tests asserted the
same value twice, once as a string literal and once via
DEFAULT_DOCKERFILE_NAME - the named-constant assertion stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
…test placement

Document the unparseable-actor.json failure mode in the runtime spec; make
DEFAULT_DOCKERFILE_NAME the single source of truth for the injected default's
name so the collision-safety invariant is structural; drop an unneeded type
cast, a test-only re-export, and a parallel-array lookup; move the tar-entry
normalizer tests next to the module they test; cover the null-actor.json and
"../.." escape sub-guards; generalize neverStartDriver's message to every
must-not-build case it now guards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
The DEFAULT_DOCKERFILE_NAME doc now states the collision-safety invariant
directly; a dangling cross-reference points at driver/tar-entry-name.ts;
the spec no longer says "parsed as JSON5" twice.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
Comments now state constraints, not rationale; the actor-driver.md section
states the observable contract (resolution order, failure messages, case
rules, log requirement) without implementation mechanics. Comment-only
change: no code, signature, or assertion lines touched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GFiYFS2Eq9833z1ruGQwUK
@Pijukatel
Pijukatel force-pushed the claude/docker-file-location-actor-drx6jx branch from 374e66b to 9592503 Compare August 26, 2026 07:29
@Pijukatel
Pijukatel force-pushed the claude/docker-file-location-actor-drx6jx branch from 9592503 to f6b18db Compare August 26, 2026 07:36
@Pijukatel
Pijukatel merged commit cda7e9a into v2-poc-requirements Aug 26, 2026
2 checks passed
@Pijukatel
Pijukatel deleted the claude/docker-file-location-actor-drx6jx branch August 26, 2026 07:42
Pijukatel pushed a commit that referenced this pull request Aug 26, 2026
Resolves four conflicts from the pnpm migration (#26) and the
Dockerfile-location work (#27):

- package-lock.json: accepted its deletion; ws and @types/ws are now
  carried by pnpm-lock.yaml, regenerated with pnpm install.
- package.json: kept both sides' dependency additions (json5, ws).
- docker-driver.ts and test-server.ts: kept both sides' imports; the
  driver-stub type import now names BuildContext and RunResourceSample.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeN7rnNX67yNdUWsRMA7Sp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants