You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Keep an image entrypoint the dev-folder mount would hide available to the run
Apify's Playwright base images start through ./xvfb-entrypoint.sh inside
the working directory. A dev-folder run bind-mounts the local folder over
that directory, so unless the folder happens to carry the same file the
engine refuses to start the container ("executable file not found"). The
driver now inspects the image's command: a working-directory-relative
entrypoint (or Cmd) the dev folder does not provide is read out of the
image and placed in the container before start, and the run starts
through that copy. Absolute and PATH-resolved commands are untouched, as
is anything the dev folder provides itself.
Covered by unit tests and a new e2e case with a busybox Actor whose
entrypoint lives in its working directory.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CZhuUP13NByepkP4n3sg3P
@@ -298,6 +298,63 @@ describe('local dev-folder bind mount: edit-compile-call loop with no rebuild (r
298
298
5*60*1000,
299
299
);
300
300
301
+
it(
302
+
"an entrypoint the image keeps inside its working directory (Apify's Playwright images start through one) stays available under the mount when the dev folder lacks it",
303
+
()=>{
304
+
constenv=apifyEnv(isolatedApifyHome);
305
+
// A tiny Actor of its own: busybox, an entrypoint script at ./entry.sh in the working directory
306
+
// (what `apify/actor-*-playwright*` images do with their Xvfb wrapper), and a dev folder that has
307
+
// no such file - mounting it over /app would hide the script.
it('a relative entrypoint inside the working directory that the dev folder lacks: the file comes out of the image, lands in the container before start, and the run starts through that copy - the run log says so',async()=>{
expect(logged.join('')).toContain('starts through ./xvfb-entrypoint.sh in its working directory');
1086
+
});
1087
+
1088
+
it('the dev folder providing the file itself, an absolute entrypoint, or a PATH-resolved one: nothing is preserved and the image command stands',async()=>{
0 commit comments