The sources for the images are present in subdirectories that are named as the corresponding
Docker image. For example, the bun-node
directory corresponds to the
imbios/actor-bun-node-puppeteer-chrome 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. |
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
apify
package that should be pre-installed in the images. - A version of the
puppeteer
package that should be pre-installed in the images that use Puppeteer.
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.
You will need the following tools installed: docker, make, jq, git
-
Clone this repository
-
Run
make all
to 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-tests
to see what tests are available.