{"id":18687406,"url":"https://github.com/alfresco/alfresco-docker-base-tomcat","last_synced_at":"2025-08-21T07:47:26.054Z","repository":{"id":29736186,"uuid":"110820764","full_name":"Alfresco/alfresco-docker-base-tomcat","owner":"Alfresco","description":"Alfresco base Tomcat image","archived":false,"fork":false,"pushed_at":"2025-08-18T06:10:01.000Z","size":262,"stargazers_count":7,"open_issues_count":1,"forks_count":11,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-08-18T08:21:35.859Z","etag":null,"topics":["alfresco","alfresco-bdu","docker","docker-image","java","ops-readiness-team","tomcat"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alfresco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-15T10:44:05.000Z","updated_at":"2025-07-21T07:20:05.000Z","dependencies_parsed_at":"2023-09-23T07:44:32.821Z","dependency_job_id":"5229c87c-2329-4e21-ad11-8d2cec24ead9","html_url":"https://github.com/Alfresco/alfresco-docker-base-tomcat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Alfresco/alfresco-docker-base-tomcat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-docker-base-tomcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-docker-base-tomcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-docker-base-tomcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-docker-base-tomcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alfresco","download_url":"https://codeload.github.com/Alfresco/alfresco-docker-base-tomcat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-docker-base-tomcat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271447220,"owners_count":24761423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alfresco","alfresco-bdu","docker","docker-image","java","ops-readiness-team","tomcat"],"created_at":"2024-11-07T10:32:43.455Z","updated_at":"2025-08-21T07:47:26.032Z","avatar_url":"https://github.com/Alfresco.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alfresco Docker Base Tomcat [![Build Status](https://img.shields.io/github/actions/workflow/status/Alfresco/alfresco-docker-base-tomcat/main.yml?branch=master)](https://github.com/Alfresco/alfresco-docker-base-tomcat/actions/workflows/main.yml) ![Docker Hub Pulls](https://img.shields.io/docker/pulls/alfresco/alfresco-base-tomcat)\n\nThis repository provides the base Docker images for Tomcat 10.1.x and 9.0.x that\nare meant to be used within the Alfresco engineering to build Docker images for\nJava/Tomcat applications.\n\nThis image relies on the [alfresco-docker-base-java](https://github.com/Alfresco/alfresco-docker-base-java) image.\n\n## Flavours\n\nChoose between one of the available flavours built from this repository:\n\nTomcat version | Java version | OS            | Image ref                                                  | Size\n---------------|--------------|---------------|------------------------------------------------------------|--------------------------------------\n9              | 11           | Rocky Linux 8 | `alfresco/alfresco-base-tomcat:tomcat9-jre11-rockylinux8`  | ![tomcat9-jre11-rockylinux8 size][1]\n9              | 17           | Rocky Linux 8 | `alfresco/alfresco-base-tomcat:tomcat9-jre17-rockylinux8`  | ![tomcat9-jre17-rockylinux8 size][2]\n10             | 11           | Rocky Linux 8 | `alfresco/alfresco-base-tomcat:tomcat9-jre11-rockylinux8`  | ![tomcat10-jre11-rockylinux8 size][3]\n10             | 17           | Rocky Linux 8 | `alfresco/alfresco-base-tomcat:tomcat10-jre17-rockylinux8` | ![tomcat10-jre17-rockylinux8 size][4]\n10             | 17           | Rocky Linux 9 | `alfresco/alfresco-base-tomcat:tomcat10-jre17-rockylinux9` | ![tomcat10-jre17-rockylinux9 size][5]\n10             | 21           | Rocky Linux 9 | `alfresco/alfresco-base-tomcat:tomcat10-jre21-rockylinux9` | ![tomcat10-jre21-rockylinux9 size][6]\n\n[1]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat9-jre11-rockylinux8\n[2]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat9-jre17-rockylinux8\n[3]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat10-jre11-rockylinux8\n[4]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat10-jre17-rockylinux8\n[5]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat10-jre17-rockylinux9\n[6]: https://img.shields.io/docker/image-size/alfresco/alfresco-base-tomcat/tomcat10-jre21-rockylinux9\n\nThe images are available on:\n\n* [Docker Hub](https://hub.docker.com/r/alfresco/alfresco-base-tomcat), image name: `alfresco/alfresco-base-tomcat`\n* [Quay](https://quay.io/repository/alfresco/alfresco-base-tomcat) (enterprise credentials required), image name: `quay.io/alfresco/alfresco-base-tomcat`\n\n### Image pinning\n\nThe pinning approach provided in\n[alfresco-base-java](https://github.com/Alfresco/alfresco-docker-base-java/blob/master/README.md#image-pinning)\nis highly suggested for this image too.\n\n## Image customization\n\nThis image's Dockerfile is extensively using multi-stage builds to allow for\ncustomization of the image. The build process can be represented as shown in the\ndiagram below:\n\n```mermaid\nflowchart TB\n\nclassDef custom fill:lightgrey,color:black,stroke:darkgrey,stroke-width:2px,stroke-dasharray: 5 5\n\nsubgraph Tomcat configuration process\ndebian(Debian 12 slim image)\ntomcat_dist(Tomcat configurator image)\nend\n\nsubgraph Tomcat Native library compilation\ntcnative_build-rocky(tomcat native libs\\nRockyLinux build image)\ntcnative_build-mydistro(Add your distribution image\\nwith tcnative build env):::custom\ntcnative_build(tomcat native libs build env)\nend\n\nsubgraph Java \u0026 APR enabled distrbution image\napr_pkg-rocky(RockyLinux image\\nwith APR)\napr_pkg-mydistro(Add your distribution image\\nwith APR):::custom\nend\n\njbase(JAVA base image)\ntomcat(Tomcat base image)\n\ndebian --\u003e tomcat_dist\ntomcat_dist ==\u003e tomcat\n\njbase --\u003e apr_pkg-rocky \u0026 apr_pkg-mydistro --\u003e tomcat\n\njbase --\u003e tcnative_build-rocky \u0026 tcnative_build-mydistro --\u003e tcnative_build\ntcnative_build ==\u003e tomcat\n```\n\n### Customizing the Tomcat configuration\n\nTo customize the Tomcat configuration, you can directly modify the `tomcat_dist`\nimage build. This step leverage a debian image to download, check \u0026 configure\nthe Tomcat distribution. By default the tool\n[xmlstarlet](https://xmlstar.sourceforge.net/doc/UG/index.html) is used to\nmodify xml files (e.g. `conf/server.xml`) file so you can reuse it to apply\nyour own changes. Should you need more tools, you can add them in the using\nthe `apt-get install` command. As this is a multi-stage build, the tools\ninstalled in the `tomcat_dist` image are not present in the final image.\n\n\u003e We recommend that configuration applied in this image is generic and not\n\u003e related to a single web application. A configuration change related to a\n\u003e specific web application should be done in the web application image.\n\n### Using a different base distribution/image\n\nThis project lets you use a different base distribution/image to create your\nAlfresco Tomcat base image.\nTo do that you need to create additional, distro specific, stages in the\nmulti-stage build and name them according to the build arguments you want to\nuse at [build time](#how-to-build-an-image-locally).\n\n#### Base image requirements\n\nThe base image you want to use to build the Alfresco Tomcat base image must\nmatch the following requirements:\n\n* Provide a compatible and up-to-date Java Runtime Environment (JRE) version\n  (for production we using JRE over JDK) as per the [Alfresco compatibility\n  matrix][acs-support]\n\n#### Specifying the new base image\n\nIn addition to the build arguments documented in the [build\ntime](#how-to-build-an-image-locally), you need to tell the build process where\nthe java base image can be found (if it's not present on the Alfresco image\nregistry). The following build arguments are available:\n\n* IMAGE_JAVA_REPO: the repository where the base image can be found (default is\n  quay.io/alfresco)\n* IMAGE_JAVA_NAME: the name of the base image to use (default is\n  alfresco-base-java)\n* IMAGE_JAVA_TAG: the tag of the base image to use (default is\n  jre${JAVA_MAJOR}-${DISTRIB_NAME}${DISTRIB_MAJOR})\n\n#### Implementing Tomcat native libs build stage\n\nYou'll need to create a new stage in the Dockerfile that will be used to build\nthe Tomcat native libraries. This stage should be named\n`tcnative_build-\u003cDISTRIB_NAME\u003e` where `\u003cDISTRIB_NAME\u003e` is the name of the\ndistribution you want to use. Take a look at the existing\n`tcnative_build-rockylinux` stage for an example, but overall the goal is to\ninstall on your target distribution the required packages to build the Tomcat\nnative libraries in the `/usr/local/tcnative` directory, so it can be copied\nto the final image.\n\nFor example:\n\n```Dockerfilea\nFROM debian:bullseye-slim AS tcnative_build-ubuntu\n...\n```\n\n#### Implementing APR enabled Tomcat base stage\n\nThis stage is pretty simple, you just need to install the APR package on your\ndistribution. This stage should be named `apr_pkg-\u003cDISTRIB_NAME\u003e` where\n`\u003cDISTRIB_NAME\u003e` is the name of the distribution you want to use.\n\n## Development\n\n### Naming specs\n\nThe images built from this repository are named as follow:\n\n`tomcat\u003cTOMCAT_VERSION\u003e-\u003cJAVA_DISTRIBUTION_TYPE\u003e\u003cJAVA_MAJOR_VERSION\u003e-\u003cOS_DISTRIBUTION_NAME\u003e\u003cOS_DISTRIBUTION_VERSION\u003e`\n\n### How to build an image locally\n\nTo build this image, run the following script:\n\n```bash\nIMAGE_REPOSITORY=alfresco/alfresco-base-tomcat\ndocker buildx build -t $IMAGE_REPOSITORY . \\\n  --build-arg DISTRIB_NAME=$DISTRIB_NAME \\\n  --build-arg DISTRIB_MAJOR=$DISTRIB_MAJOR \\\n  --build-arg JAVA_MAJOR=$JAVA_MAJOR \\\n  --build-arg TOMCAT_MAJOR=$TOMCAT_MAJOR \\\n  --no-cache\n```\n\nwhere:\n\n* DISTRIB_NAME is rockylinux\n* DISTRIB_MAJOR is 8 or 9 for rockylinux\n* JAVA_MAJOR is 11, 17 or 21 for rockylinux only\n* TOMCAT_MAJOR is 8 or 9\n\n### Release\n\nNew images are built automatically on each new commit on master and on a weekly schedule.\n\n## Downstream projects\n\n* [alfresco-community-repo](https://github.com/Alfresco/alfresco-community-repo/blob/master/packaging/docker-alfresco/Dockerfile)\n* [alfresco-community-share](https://github.com/Alfresco/alfresco-community-share/blob/master/packaging/docker/Dockerfile)\n\n[acs-support]: https://support.hyland.com/r/Alfresco/Alfresco-Content-Services/23.4/Alfresco-Content-Services/Supported-Platforms\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfresco%2Falfresco-docker-base-tomcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falfresco%2Falfresco-docker-base-tomcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfresco%2Falfresco-docker-base-tomcat/lists"}