{"id":50858687,"url":"https://github.com/operaton/operaton-docker","last_synced_at":"2026-06-14T20:02:37.792Z","repository":{"id":271861731,"uuid":"906125215","full_name":"operaton/operaton-docker","owner":"operaton","description":" Docker images for Operaton BPM","archived":false,"fork":false,"pushed_at":"2026-05-21T22:11:29.000Z","size":68,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-05-22T06:55:50.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/operaton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-20T08:09:30.000Z","updated_at":"2026-05-21T22:11:33.000Z","dependencies_parsed_at":"2025-02-24T22:19:45.785Z","dependency_job_id":"7bb7d506-8062-4643-93d0-ea7f8cd1987f","html_url":"https://github.com/operaton/operaton-docker","commit_stats":null,"previous_names":["operaton/operaton-docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/operaton/operaton-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operaton","download_url":"https://codeload.github.com/operaton/operaton-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34335688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"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":[],"created_at":"2026-06-14T20:02:36.921Z","updated_at":"2026-06-14T20:02:37.779Z","avatar_url":"https://github.com/operaton.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Operaton Docker images\n\n\u003e Use our [GitHub issue tracker](https://github.com/operaton/operaton-docker/issues) for bug reports or feature requests.\n\u003e For help requests, open a help request topic on the [Operaton forum](https://forum.operaton.org/)\n\nThis Operaton project provides docker images of the latest \nOperaton releases. The images can be used to demonstrate and test the\nOperaton or can be extended with own process applications. It is\nplanned to provide images on the official [docker registry](https://hub.docker.com/u/operaton) for every upcoming\nrelease, which includes snapshot releases.\n\nThe Operaton Docker images are wrappers for the pre-packaged Operaton\ndistributions. The pre-packaged distributions are intended for users who want a \ngetting started experience. In case you want to use the Operaton Docker images \nin production, consider reading our [security instructions](https://docs.operaton.org/manual/latest/user-guide/security/).\n\n## Distributions\n\nYou can find more detailed documentation on the pre-packaged (community) \ndistributions that Operaton provides at the following links:\n\n* Operaton - [documentation](https://docs.operaton.org/manual/latest/user-guide/operaton-run/)\n* Operaton Tomcat - [Operaton Tomcat integration documentation](https://docs.operaton.org/manual/latest/user-guide/runtime-container-integration/tomcat/)\n* Operaton Wildfly - [Operaton Wildfly Subsystem documentation](https://docs.operaton.org/manual/latest/user-guide/runtime-container-integration/jboss/)\n\n## Get started\n\nTo start a Docker container of the latest Operaton release:\n\n```\ndocker pull operaton/operaton:latest\ndocker run -d --name operaton -p 8080:8080 operaton/operaton:latest\n```\n\n### Tasklist, Cockpit, Admin web apps\n\nThe three Operaton web apps are accessible through the landing page: \nhttp://localhost:8080/operaton-welcome/index.html\n\nThe default credentials for admin access to the web apps is:\n\n- Username: `demo`\n- Password: `demo`\n\n### REST API\n\nThe Operaton REST API is accessible through: http://localhost:8080/engine-rest\n\nSee the [REST API](https://docs.operaton.org/manual/latest/reference/rest/)\ndocumentation for more details on how to use it.\n\n**Note**: The REST API does not require authentication by default. Follow the instructions from the [documentation](https://docs.operaton.org/manual/latest/reference/rest/overview/authentication/)\nto enable authentication for the REST API.\n\n## Supported tags/releases\n\nEach distribution of Operaton - **Self-Contained**, **Tomcat**, and **Wildfly** - is published to its own Docker repository on Docker Hub. Below are the links to these repositories:\n\n- [Operaton (Self-Contained)](https://hub.docker.com/r/operaton/operaton)\n- [Tomcat](https://hub.docker.com/r/operaton/tomcat)\n- [Wildfly](https://hub.docker.com/r/operaton/wildfly)\n\n### Tag Schema\n\nEach of the repositories follows the tag schema below:\n\n- `latest`: Always points to the highest released semantic version of Operaton.\n- `SNAPSHOT`, `${VERSION}-SNAPSHOT`: A nightly build of the latest or a specific revision of Operaton. These are not officially released versions.\n- `${VERSION}`: A specific, officially released version of Operaton.\n\n## Operaton configuration\n\nYou can find the complete Operaton documentation at https://docs.operaton.org/.\n\nIf you prefer to start your Operaton Docker image right away, you will find the\nfollowing links useful:\n\n* [Operaton configuration file properties](https://docs.operaton.org/manual/latest/reference/deployment-descriptors/descriptors/bpm-xml/)\n* [Process Engine Plugins guide](https://docs.operaton.org/manual/latest/user-guide/process-engine/process-engine-plugins/)\n* [Operaton Logging](https://docs.operaton.org/manual/latest/user-guide/logging/)\n\n## Operaton Docker image configuration\n\n### Configuration of the `operaton` distribution\n\nBecause `operaton` is a Spring Boot-based distribution, it can be configured through \nthe respective environment variables. For example:\n- `SPRING_DATASOURCE_DRIVER_CLASS_NAME` the database driver class name, \n  supported are h2 (default), mysql, and postgresql:\n  - h2: `DB_DRIVER=org.h2.Driver`\n  - mysql: `DB_DRIVER=com.mysql.cj.jdbc.Driver`\n  - postgresql: `DB_DRIVER=org.postgresql.Driver`\n- `SPRING_DATASOURCE_URL` the database jdbc url\n- `SPRING_DATASOURCE_USERNAME` the database username\n- `SPRING_DATASOURCE_PASSWORD` the database password\n\nWhen not set or otherwise specified, the integrated H2 database is used.\n\nAny other `SPRING_*` variables can be used to further configure the app. \nAlternatively, a `default.yml` file can be mounted to `/operaton/configuration/default.yml`.\nMore information on configuring Spring Boot applications can be found in the \n[Spring Boot documentation](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config).\n\nThe following environment variables are supported for convenience and \ncompatibility and are internally mapped to `SPRING_DATASOURCE_*` variables \nwhen provided:\n\n* `DB_DRIVER`\n* `DB_USERNAME`\n* `DB_PASSWORD`\n* `DB_URL`\n* `DB_PASSWORD_FILE`\n\nThe `JMX_PROMETHEUS` configuration is not supported, and while `DEBUG` can be \nused to enable debug output, it doesn't start a debug socket.\n\n`operaton` supports different startup options to choose whether or not to enable the \nWebApps, the REST API or Swagger UI. By default, all three are enabled.\n\nPassing startup parameters to enable them selectively can be done by passing any \ncombination of `--webapps`, `--rest` or `--swaggerui` like in the following \nexample:\n\nEnable only web apps:\n\n```bash\ndocker run operaton/operaton ./operaton.sh --webapps\n``` \nEnable only REST API and Swagger UI:\n```bash\ndocker run operaton/operaton ./operaton.sh --rest --swaggerui\n```\n\nAdditionally, a `--production` parameter is supported to switch the \nconfiguration to `/operaton/configuration/production.yml`. This parameter also \ndisables Swagger UI by default.\n\n### Java versions\n\nOur docker images are using a LTS OpenJDK version supported by\nOperaton. This currently means:\n\n - Operaton 1.0 or later will be based on OpenJDK 17.\n\nWhile all the OpenJDK versions supported by Operaton will work with the exceptions specified above,\nwe will not provide ready to use images for them.\n\n#### Java options\n\nTo override the default Java options the environment variable `JAVA_OPTS` can\nbe set.\n\n### Use Docker Memory Limits\n\nThe Java JVM is container-aware by default, automatically adjusting to Docker container limits. Here's how to configure optimal memory settings for Operaton:\n\n**Recommended Memory Configuration**\n\nFor most Operaton workloads, use these optimal settings:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n  --memory=2g \\\n  -e JAVA_OPTS=\"-XX:MaxRAMPercentage=70.0\" \\\n  operaton/operaton:latest\n```\n\nThis allocates about 1.4GB for the JVM heap, which provides sufficient memory for Operaton while leaving room for non-heap memory requirements (native memory, thread stacks, etc.).\n\nFor different workload sizes:\n- **Light usage**: 1GB container with 70% RAM allocation (~700MB heap)\n- **Moderate usage**: 2GB container with 70% RAM allocation (~1.4GB heap)\n- **Heavy usage**: 4GB container with 70% RAM allocation (~2.8GB heap)\n\n**Understanding JVM Container Behavior**\n\nWithout explicit memory limits, the JVM assumes it can use all host resources:\n- The heap defaults to 25% of host system memory (often too small for Operaton)\n- Thread pools may scale to all available cores\n\nFor proper resource management, always specify container limits:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n  --memory=2g --cpus=2 \\\n  operaton/operaton:latest\n```\n\n**Override CPU Core Detection**\n\nIf needed, you can explicitly set how many CPU cores the JVM should assume using the `-XX:ActiveProcessorCount` flag:\n\n```bash\n-e JAVA_OPTS=\"-XX:ActiveProcessorCount=2\"\n```\n\nThis is useful in situations where container limits aren't accurately detected or you want to simulate a specific number of cores regardless of the environment.\n\n**Disable Container Awareness (Manual Tuning)**\n\nYou can disable container support entirely and manage resources manually:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n  -e JAVA_OPTS=\"-XX:-UseContainerSupport -Xmx768m -Xms512m\" \\\n  operaton/operaton:latest\n```\n\n\n\u003e **Note on Container Platform Resource Management**\n\u003e\n\u003e In Kubernetes, resource limits are set in a Pod or container specification using the resources field, defining limits and requests for CPU and memory. In Podman, resource limits are configured using command-line flags like --memory, --cpus, and --cpu-shares when running containers. The JVM will automatically detect and adapt to these resource limits regardless of how they are configured in the container platform.\n\n**Inspecting JVM Configuration Parameters**\n\nTo examine the actual JVM memory settings in use, you can display all configuration parameters when launching the container:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n  --memory=1g \\\n  -e JAVA_OPTS=\"-XX:+PrintFlagsFinal\" \\\n  operaton/operaton:latest\n```\n\nExtract and analyze the memory configuration by filtering the container logs:\n\nFor Linux/macOS systems:\n```bash\ndocker logs operaton | grep HeapSize\n```\n\nFor Windows PowerShell:\n```powershell\ndocker logs operaton | Select-String \"HeapSize\"\n```\n\nFor Windows Command Prompt:\n```batch\ndocker logs operaton | findstr \"HeapSize\"\n```\n\nThese commands filter for heap-related settings in the JVM configuration. You can also search for other important parameters:\n\n```bash\n# For thread pool settings (Linux/macOS)\ndocker logs operaton | grep \"GCThreads\\|ParallelGCThreads\"\n\n# For container detection (Linux/macOS)\ndocker logs operaton | grep \"UseContainerSupport\"\n```\n\n### Database environment variables\n\nThe used database can be configured by providing the following environment\nvariables:\n\n- `DB_CONN_MAXACTIVE` the maximum number of active connections (default: `20`)\n- `DB_CONN_MAXIDLE` the maximum number of idle connections (default: `20`)\n  - ignored when app server = `wildfly` or `run`\n- `DB_CONN_MINIDLE` the minimum number of idle connections (default: `5`)\n- `DB_DRIVER` the database driver class name, supported are h2, mysql, and postgresql:\n  - h2: `DB_DRIVER=org.h2.Driver`\n  - mysql: `DB_DRIVER=com.mysql.cj.jdbc.Driver`\n  - postgresql: `DB_DRIVER=org.postgresql.Driver`\n- `DB_URL` the database jdbc url\n- `DB_USERNAME` the database username\n- `DB_PASSWORD` the database password\n- `DB_VALIDATE_ON_BORROW` validate database connections before they are used (default: `false`)\n- `DB_VALIDATION_QUERY` the query to execute to validate database connections (default: `\"SELECT 1\"`)\n- `DB_PASSWORD_FILE` this supports [Docker Secrets](https://docs.docker.com/engine/swarm/secrets/). \n  Put here the path of the secret, e.g. `/run/secrets/operaton_db_password`. \n  Make sure that `DB_PASSWORD` is not set when using this variable!\n- `SKIP_DB_CONFIG` skips the automated database configuration to use manual\n  configuration\n- `WAIT_FOR` wait for a `host:port` to be available over TCP before starting. Check [Waiting for database](#waiting-for-database) for details.\n- `WAIT_FOR_TIMEOUT` how long to wait for the service to be avaiable - defaults to 30 seconds. Check [Waiting for database](#waiting-for-database) for details.\n\nFor example, to use a `postgresql` docker image as database you can start the\nas follows:\n\n```bash\n# start postgresql image with database and user configured\ndocker run -d --name postgresql ...\n\ndocker run -d --name operaton -p 8080:8080 --link postgresql:db \\\n           -e DB_DRIVER=org.postgresql.Driver \\\n           -e DB_URL=jdbc:postgresql://db:5432/process-engine \\\n           -e DB_USERNAME=operaton \\\n           -e DB_PASSWORD=operaton \\\n           -e WAIT_FOR=db:5432 \\\n           operaton/operaton:latest\n```\n\nAnother option is to save the database config to an environment file, i.e.\n`db-env.txt`:\n\n```\nDB_DRIVER=org.postgresql.Driver\nDB_URL=jdbc:postgresql://db:5432/process-engine\nDB_USERNAME=operaton\nDB_PASSWORD=operaton\nWAIT_FOR=db:5432\n```\n\nUse this file to start the container:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 --link postgresql:db \\\n           --env-file db-env.txt operaton/operaton:latest\n```\n\nThe docker image already contains drivers for `h2`, `mysql`, and `postgresql`.\nIf you want to use other databases, you have to add the driver to the container\nand configure the database settings manually by linking the configuration file\ninto the container.\n\nTo skip the configuration of the database by the docker container and use your\nown configuration set the environment variable `SKIP_DB_CONFIG` to a non-empty \nvalue:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 -e SKIP_DB_CONFIG=true \\\n           operaton/operaton:latest\n```\n\n### Waiting for database\n\nStarting the Operaton Docker image requires the database to be already \navailable. This is quite a challenge when the database and Operaton are \nboth docker containers spawned simultaneously, for example, by `docker compose` \nor inside a Kubernetes Pod. To help with that, the Operaton Docker image \nincludes [wait-for-it.sh](https://github.com/vishnubob/wait-for-it) to allow the \ncontainer to wait until a 'host:port' is ready. The mechanism can be configured \nby two environment variables:\n\n- `WAIT_FOR_TIMEOUT`: how long to wait for the service to be available in seconds\n- `WAIT_FOR`: the service `host:port` to wait for. You can provide multiple\nhost-port pairs separated by a comma or an empty space (Example:\n`\"host1:port1 host2:port2\"`).\nThe `WAIT_FOR_TIMEOUT` applies to each specified host, i.e. Operaton will wait for\n`host1:port1` to become available and, if unavailable for the complete `WAIT_FOR_TIMEOUT`\nduration, will wait for `host2:port2` for another `WAIT_FOR_TIMEOUT` period.\n\nExample with a PostgreSQL container:\n\n```\ndocker run -d --name postgresql ...\n\ndocker run -d --name operaton -p 8080:8080 --link postgresql:db \\\n           -e DB_DRIVER=org.postgresql.Driver \\\n           -e DB_URL=jdbc:postgresql://db:5432/process-engine \\\n           -e DB_USERNAME=operaton \\\n           -e DB_PASSWORD=operaton \\\n           -e WAIT_FOR=db:5432 \\\n           -e WAIT_FOR_TIMEOUT=60 \\\n           operaton/operaton:latest\n```\n\n### Volumes\n\nOperaton is installed inside the `/operaton` directory. Which\nmeans the Apache Tomcat configuration files are inside the `/operaton/conf/` \ndirectory and the deployments on Apache Tomcat are in `/operaton/webapps/`. \nThe directory structure depends on the application server.\n\n### Debug\n\nTo enable JPDA inside the container, you can set the environment variable\n`DEBUG=true` on startup of the container. This will allow you to connect to the\ncontainer on port `8000` to debug your application.\nThis is only supported for `wildfly` and `tomcat` distributions.\n\n### Prometheus JMX Exporter\n\nTo enable Prometheus JMX Exporter inside the container, you can set the \nenvironment variable `JMX_PROMETHEUS=true` on startup of the container. \nThis will allow you to get metrics in Prometheus format at `\u003chost\u003e:9404/metrics`. \nFor configuring exporter you need attach your configuration as a container volume \nat `/operaton/javaagent/prometheus-jmx.yml`. This is only supported for `wildfly` \nand `tomcat` distributions.\n\n### Change timezone\n\nTo change the timezone of the docker container, you can set the environment\nvariable `TZ`.\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n           -e TZ=Europe/Berlin \\\n          operaton/operaton:latest\n```\n\n## Build\n\nYou can build a Docker image for a given Operaton version and distribution yourself.\n\n### Build a released version\n\nTo build a community image specify the `DISTRO` and `VERSION` build\nargument. Possible values for `DISTRO` are:\n* `operaton`\n* `tomcat`\n* `wildfly`\n\nThe `VERSION` argument is the Operaton version you want to build, \ni.e. `1.0.0`.\n\n```bash\ndocker build -t operaton \\\n  --build-arg DISTRO=${DISTRO} \\\n  --build-arg VERSION=${VERSION} \\\n  .\n```\n\n### Build a SNAPSHOT version\n\nAdditionally, you can build `SNAPSHOT` versions for the upcoming releases by\nsetting the `SNAPSHOT` build argument to `true`.\n\n```bash\ndocker build -t operaton \\\n  --build-arg DISTRO=${DISTRO} \\\n  --build-arg VERSION=${VERSION} \\\n  --build-arg SNAPSHOT=true \\\n  .\n```\n### Build when behind a proxy\n\nYou can pass the following arguments to set proxy settings to Maven: \n\n* `MAVEN_PROXY_HOST`\n* `MAVEN_PROXY_PORT`\n* `MAVEN_PROXY_USER`\n* `MAVEN_PROXY_PASSWORD`\n\nExample for a released version of a community edition:\n\n```bash\ndocker build -t operaton \\\n  --build-arg DISTRO=${DISTRO} \\\n  --build-arg VERSION=${VERSION} \\\n  --build-arg MAVEN_PROXY_HOST=${PROXY_HOST} \\\n  --build-arg MAVEN_PROXY_PORT=${PROXY_PORT} \\\n  --build-arg MAVEN_PROXY_USER=${PROXY_USER} \\\n  --build-arg MAVEN_PROXY_PASSWORD=${PROXY_PASSWORD} \\\n  .\n```\n### Override MySQL and PostgreSQL driver versions. \nBy default, the driver versions are fetched from https://github.com/operaton/operaton/blob/master/database/pom.xml. That can be overriden by passing `MYSQL_VERSION` and `POSTGRESQL_VERSION` build args\n\n```bash\ndocker build -t operaton \\\n  --build-arg DISTRO=${DISTRO} \\\n  --build-arg VERSION=${VERSION} \\\n  --build-arg POSTGRESQL_VERSION=${POSTGRESQL_VERSION} \\\n  --build-arg MYSQL_VERSION=${MYSQL_VERSION} \\\n  .\n```\n\n## Use cases\n\n### Change configuration files\n\nYou can use docker volumes to link your own configuration files inside the\ncontainer.  For example, if you want to change the `bpm.xml` on \nApache Tomcat:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n           -v $PWD/bpm.xml:/operaton/conf/bpm.xml \\\n           operaton/operaton:latest\n```\n\n### Add own process application\n\nIf you want to add your own process application to the docker container, you can\nuse Docker volumes. For example, if you want to deploy the [twitter demo][] \non Apache Tomcat:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n           -v /PATH/TO/DEMO/twitter.war:/operaton/webapps/twitter.war \\\n           operaton/operaton:latest\n```\n\nThis also allows you to modify the app outside the container, and it will\nbe redeployed.\n\n\n### Clean distro without web apps and examples\n\nTo remove all web apps and examples from the distro and only deploy your\nown applications or your own configured cockpit also use Docker volumes. You\nonly have to overlay the deployment folder of the application server with\na directory on your local machine. So in Apache Tomcat, you would mount a \ndirectory to `/operaton/webapps/`:\n\n```bash\ndocker run -d --name operaton -p 8080:8080 \\\n           -v $PWD/webapps/:/operaton/webapps/ \\\n           operaton/operaton:latest\n```\n\n\n## Extend Docker image\n\nAs we release these docker images on the official [docker registry][] it is\neasy to create your own image. This way you can deploy your applications\nwith docker or provided an own demo image. Just specify in the `FROM`\nclause which Operaton image you want to use as a base image:\n\n```dockerfile\nFROM operaton/operaton:tomcat-latest\n\nADD my.war /operaton/webapps/my.war\n```\n\n## Branching model\n\nBranches and their roles in this repository:\n\n- `next` (default branch) is the branch where new features and bugfixes needed \n  to support the current `master` of [operaton-repo](https://github.com/operaton/operaton) go.\n- `7.x` branches get created from `next` when a Operaton minor version\n  is released. They only receive backports of bugfixes when absolutely necessary.\n\n\n## License\n\nApache License, Version 2.0\n\n\n[twitter demo]: https://github.com/operaton-consulting/code/tree/master/one-time-examples/twitter\n[docker registry]: https://hub.docker.com/r/operaton/operaton/\n[docker hub tags]: https://hub.docker.com/r/operaton/operaton/tags/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperaton%2Foperaton-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperaton%2Foperaton-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperaton%2Foperaton-docker/lists"}