This is a list of base images that are used to run applications and builds on the Eclipse Foundation infrastructure.
- Know the state of the art / best practices of building container images
- Handle OpenShift specifics
- Support Arbitrary User IDs (https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#use-uid)
If you want to add a new drupal-node image you will need to add a new line in two places:
- https://github.com/EclipseFdn/dockerfiles/blob/master/build.sh
build_arg drupal-node d10-php8.4-n24 "--build-arg DRUPAL_VERSION=10-php8.4 --build-arg NODE_VERSION=v24.22.1 --build-arg NPM_VERSION=11" latest build_arg drupal-node d11-php8.5-n24 "--build-arg DRUPAL_VERSION=11-php8.5 --build-arg NODE_VERSION=v24.22.1 --build-arg NPM_VERSION=11" - https://github.com/EclipseFdn/dockerfiles/blob/master/Jenkinsfile
stage('drupal-node') { steps { buildImage('drupal-node', 'd10-php8.4-n24', 'drupal-node', ['DRUPAL_VERSION':'10-php8.4', 'NODE_VERSION': 'v24.22.1', 'NPM_VERSION': '11'], true) buildImage('drupal-node', 'd11-php8.5-n24', 'drupal-node', ['DRUPAL_VERSION':'11-php8.5', 'NODE_VERSION': 'v24.22.1', 'NPM_VERSION': '11']) } }
DRUPAL_VERSION(drupal-node): anydrupal:<tag>-apacheprefix, such as11.4.10or11-php8.5. Sites install their own Drupal core fromcomposer.lock, so this mostly selects the PHP version.11-php8.5keeps PHP on 8.5 while picking up patch releases when the image is rebuilt.NODE_VERSION: an exact Node.js release, such asv24.22.1. To pick up a Node.js security release, bump it here and in the Jenkinsfile.NPM_VERSION(drupal-node): defaults to11.1.0. Pass11to get the newest npm 11.x instead, so it never downgrades the npm bundled with Node.js.
Name tags after the major version (for example n24, not n24.22.1). Sites then keep the same tag, and version bumps here reach them on their next rebuild.
build.sh
- You will need to add
latestas the last parameter on the line of the specific version as seen above.
Jenkinsfile
- You will need to add
trueas the last parameter on the line of the specific version as seen above.
Please note, only one image can have the latest tag at a time.
build.sh can be used for local testing. The Jenkinsfile is used during the CI build, leveraging the Jenkins pipeline library.