apify-actor-docker
apify-actor-docker copied to clipboard
Base Docker images for Apify actors.
Apify base Docker images
Public Docker images for Apify Actor serverless platform (https://docs.apify.com/actor)
The sources for the images are present in subdirectories that are named as the corresponding
Docker image. For example, the node directory corresponds to the
apify/actor-node Docker image.
The images are using the following tags:
| Tag | Description |
|---|---|
latest |
Well-tested production version of the image. |
beta |
Development version of the image. |
Maintenance
In order to build and publish a new version of the Docker images, open the Actions tab and find the Release Images workflow. You can then run the workflow by providing the following inputs:
- A tag, which will be used to tag the image in DockerHub. Typically beta or latest.
- A version of the
apifypackage that should be pre-installed in the images. - A version of the
puppeteerpackage that should be pre-installed in the images that use Puppeteer.
Adding a new actor image
To create a new image, which is not yet published in Apify DockerHub organization. You need access to the organization and rights to create a new repository. After, you need to follow these steps:
-
Create a new folder with the same name as the package you want to create without the prefix
actor-. For imageapify/actor-node, create foldernode. -
Create a source of the image in that folder. Remember to create a test that is runnable using docker run to be able to test in the image in CI/CD.
-
Create a new repository in the Apify DockerHub organization, use the name with
actor-prefix, e.g.apify/actor-node. -
Give permission Read & Write to create image for devs groups in the Apify DockerHub organization.
-
Create a GitHub workflow which builds, tests and publishes the image into the DockerHub.
Testing images locally
You will need the following tools installed: docker, make, jq, git
-
Clone this repository
-
Run
make allto test out all images (this will take a long while, be patient).
You can overwrite the node version you build the images for by specifying NODE_VERSION=xx environment variable.
You can overwrite the playwright version you build the images for by specifying PLAYWRIGHT_VERSION=vx.x.x- environment variable. You must respect the format of v<full-semver-version>-
You can overwrite the puppeteer version you build the images for by specifying PUPPETEER_VERSION=x.x.x environment variable. You must respect the format of <full-semver-version>
- If you want to run a specific test, call it with
make <test name>. Runmake what-teststo see what tests are available.