Before the actor can be run, it first needs to be built. The build effectively creates a snapshot of a specific version of the actor's settings such as the Source code and Environment variables, and creates a Docker image that contains everything the actor needs for its run, including necessary NPM packages, web browsers, etc.
Each build is assigned a unique build number of the form
MAJOR.MINOR corresponds to the actor version number (see Versioning) and
BUILD is an automatically-incremented number starting at
By default, the build has a timeout of 300 seconds and consumes 1024 MB of memory from the user's memory limit. See the Resource limits section for more details.
When running the actor, the caller needs to specify which actor build should actually be used. To simplify this process, the builds can be associated with a tag such
beta, which can be used instead of the version number when running the actor. The tags are unique - only one build can be associated with a specific tag.
To set a tag for builds of a specific actor version, set the Build tag property. Whenever a new build of the version is successfully finished, it is automatically assigned the tag. By default, the builds are set the
Apify provides the following Docker images that can be used as a base for user actors:
- Node.js 12 on Alpine Linux (apify/actor-node-basic) Slim and efficient image, contains only the most elementary tools. Note that Puppeteer is not available in this image.
- Node.js 12 + Chrome on Debian (apify/actor-node-chrome)
Larger image with the Chromium and Google Chrome browsers and the puppeteer NPM package bundled. With this image, you can use the
Apify.launchPuppeteer()function. Note that Chrome requires quite a lot of resources, therefore the actor should run with at least 1024 MB of memory.
- Node.js 12 + Chrome + Xvfb on Debian (apify/actor-node-chrome-xvfb)
This image extends
apify/actor-node-chromewith X virtual framebuffer (Xvfb) in order to support non-headless browsing. Note that with this image the
Apify.launchPuppeteer()function opens non-headless Chrome by default.
- [DEPRECATED] Node.js 10 + Puppeteer on Debian (apify/actor-node-puppeteer)
This image is deprecated and will be removed in the future. Use the
All images come in two versions: the
latest tag corresponds to the stable version and
beta to images where we test new features. Use the beta version at your own risk.
Note that all Apify Docker images are pre-cached on Apify servers in order to speed-up the actor builds and runs. The source code used to generate the images is available in the apify-actor-docker GitHub repository.
By default, the build process pulls latest copies of all necessary Docker images and builds each new layer of Docker image from scratch. To speedup the builds triggered via API you can add
useCache=1 parameter. See API reference for more details.
Each build starts with the initial status
READY and goes through one or more transitional statuses to one of the terminal statuses.
||initial||Started but not allocated to any worker yet|
||transitional||Executing on a worker|
||transitional||Timing out now|
||transitional||Being aborted by user|
||terminal||Aborted by user|