{"id":13819356,"url":"https://github.com/mjpitz/nomad-on-docker","last_synced_at":"2025-04-06T06:28:20.314Z","repository":{"id":80615844,"uuid":"433663194","full_name":"mjpitz/nomad-on-docker","owner":"mjpitz","description":"Demonstration connecting Consul, Vault, and Nomad all together using docker 'nodes'","archived":false,"fork":false,"pushed_at":"2021-12-06T14:39:29.000Z","size":47,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-12T12:16:14.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mjpitz.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}},"created_at":"2021-12-01T02:59:24.000Z","updated_at":"2022-09-21T15:50:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a4c6a32-ebaf-42a9-9781-736caaae2e50","html_url":"https://github.com/mjpitz/nomad-on-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjpitz%2Fnomad-on-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjpitz%2Fnomad-on-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjpitz%2Fnomad-on-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjpitz%2Fnomad-on-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjpitz","download_url":"https://codeload.github.com/mjpitz/nomad-on-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445133,"owners_count":20939938,"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","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":"2024-08-04T08:00:45.812Z","updated_at":"2025-04-06T06:28:20.292Z","avatar_url":"https://github.com/mjpitz.png","language":"Dockerfile","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"Mostly a proof of concept that connects all the HashiCorp projects together inside of docker. _**Why?**_ Because having \na safe and secure production cluster shouldn't require a hard way.\n\n## Images\n\n- [ghcr.io/mjpitz/hashistack][]\n  - Tags: `latest`, `latest-alpine`, `latest-dind`\n  - Architectures: `amd64`, `arm64`\n- [ghcr.io/mjpitz/nomad][]\n  - Tags: `latest`, `latest-alpine`, `latest-dind`\n  - Architectures: `amd64`, `arm64`\n\n[ghcr.io/mjpitz/hashistack]: https://github.com/users/mjpitz/packages/container/package/hashistack\n[ghcr.io/mjpitz/nomad]: https://github.com/users/mjpitz/packages/container/package/nomad\n\n## Status\n\n- [x] Consul\n  - [x] HA\n  - [x] Add a serf gossip key\n  - [ ] ACLs\n  - [ ] TLS Certificates\n- [x] Vault\n  - [ ] HA\n  - [ ] TLS Certificates\n- [x] Nomad\n  - [x] HA\n  - [x] Add a serf gossip key\n    - Nomad's serf configuration is used to communicate over a WAN\n  - [ ] Enable consul connect integration\n  - [ ] Enable vault secret integration\n    - https://learn.hashicorp.com/tutorials/nomad/vault-nomad-secrets\n    - https://learn.hashicorp.com/tutorials/nomad/vault-pki-nomad?in=nomad/integrate-vault\n    - https://learn.hashicorp.com/tutorials/nomad/vault-postgres?in=nomad/integrate-vault\n  - [ ] ACLs\n  - [ ] TLS Certificates\n- [x] Workers\n  - [x] Support docker-in-docker\n  - [x] Support JDK\n  - [x] Embedded consul agent\n  - [x] Embedded nomad client\n  - [ ] TLS Certificates\n\n## Deployment\n\nThe default `docker-compose.yaml` file deploys a single, all-in-one container. The `docker-compose-ha.yaml` file uses\nthe same image, but deploys each component separately according to the various HashiCorp reference architecture\ndocuments. Currently, this spins up a single datacenter, but Nomad is designed to run over a WAN and operate against\nmultiple datacenters.\n\n```shell\ndocker compose up\n```\n\nOnce all the containers are running, you should be able to access their UI in the browser. Note, these ports are\ncurrently unavailable for the HA configuration. To access the associated UI, you will need to look up the port mapping.\n\n- Consul: http://localhost:8500\n- Vault: http://localhost:8200\n- Nomad: http://localhost:4646\n\n## Extra Packages\n\nThe `ghcr.io/mjpitz/hashistack` container image accepts an `EXTRA_PACKAGES` environment variable that allows additional\nalpine packages to be installed. The value must be a space-separated list of package names. For example `openjdk11` will\ninstall openjdk version 11 prior to running the enabled processes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjpitz%2Fnomad-on-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjpitz%2Fnomad-on-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjpitz%2Fnomad-on-docker/lists"}