{"id":26164714,"url":"https://github.com/optum/admiral","last_synced_at":"2026-05-07T15:38:32.895Z","repository":{"id":279648849,"uuid":"917753431","full_name":"Optum/admiral","owner":"Optum","description":"Controls your fleet of docker containers.","archived":false,"fork":false,"pushed_at":"2025-02-27T21:56:07.000Z","size":236,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-11T15:51:10.085Z","etag":null,"topics":["docker","docker-compose","java"],"latest_commit_sha":null,"homepage":"","language":"Java","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/Optum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2025-01-16T15:29:26.000Z","updated_at":"2025-02-26T21:45:40.000Z","dependencies_parsed_at":"2025-02-26T17:46:54.334Z","dependency_job_id":null,"html_url":"https://github.com/Optum/admiral","commit_stats":null,"previous_names":["optum/admiral"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Optum/admiral","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optum%2Fadmiral","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optum%2Fadmiral/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optum%2Fadmiral/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optum%2Fadmiral/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Optum","download_url":"https://codeload.github.com/Optum/admiral/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optum%2Fadmiral/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003461,"owners_count":26083595,"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-10-10T02:00:06.843Z","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":["docker","docker-compose","java"],"created_at":"2025-03-11T15:39:53.937Z","updated_at":"2025-10-10T10:06:39.074Z","avatar_url":"https://github.com/Optum.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# admiral\nControls your fleet of docker containers.\n\n## Configuration Variable Files (not Environment Variable Files)\nAdmiral supports environment variable files like docker-compose, but Admiral also supports something called\n\"configuration variable files\" that docker-compose does not support.\n\nLet's begin by showing what docker-compose does.  You can control the configuration of docker-compose.yaml\nthrough the specially-named \".env\" file like this:\n\n```yaml\n#file=.env\nIMAGE_VERSION:1.34.7\n```\n```yaml\n#file=docker-compose.yaml\nservices:\n  sample1:\n    image: \"myappimage:${IMAGE_VERSION}\"\n```\n```yaml\n#docker-compose config\nservices:\n  sample1:\n    image: myappimage:1.34.7\nversion: '3.9'\n```\n\nNow what we wish docker-compose would do... let us put IMAGE_VERSION in a file\nother than .env, like maybe production.env.  This is what happens when you do:\n\n```yaml\n#file=production.env\nIMAGE_VERSION:1.34.7\n```\n```yaml\n#file=docker-compose.yaml\nservices:\n  sample1:\n    env_file: production.env\n    image: \"myappimage:${IMAGE_VERSION}\"\n```\n```yaml\n#docker-compose config\nWARNING: The IMAGE_VERSION variable is not set. Defaulting to a blank string.\nservices:\n  sample1:\n    environment:\n      IMAGE_VERSION: 1.34.7\n    image: 'myappimage:'\nversion: '3.9'\n```\n\nYou see: docker-compose takes the contents of env_file and does two things:\n1. It sends the variable to the containerController\n2. It **doesn't** make that variable available to the docker-compose configuration.\n\nWhat we want is a named .env file (a **config** file, not an **environment** file) that does the opposite:\n1. It **doesn't** send the variable to the containerController\n2. It makes that variable available to the docker-compose configuration.\n\nThere are plenty of people begging for this:\n* https://github.com/docker/compose/issues/6170\n* https://github.com/docker/compose/issues/8379\n\nAdmiral delivers!  And to differentiate config files from environment files, we can use an\nextension of \".config\" or the brief \".conf\" instead of \".env\".\n\n(I'd rather talk about \"the Production Config file\" than \"the Production Conf file\" so just use .config\nand deal with typing the extra two characters.)\n\n```yaml\nx-admiral-project:\n  config_file: production.config\n```\n\nThere is another docker-compose \"won'tfix\" that Admiral provides:\n* https://github.com/docker/compose/issues/745\n\n```yaml\nx-admiral-project:\n  name:\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foptum%2Fadmiral","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foptum%2Fadmiral","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foptum%2Fadmiral/lists"}