{"id":15069395,"url":"https://github.com/asapdotid/docker-openjdk","last_synced_at":"2026-01-02T18:06:28.404Z","repository":{"id":191004195,"uuid":"683748088","full_name":"asapdotid/docker-openjdk","owner":"asapdotid","description":"Docker Image OpenJDK Headless","archived":false,"fork":false,"pushed_at":"2023-08-27T15:50:06.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T21:17:22.453Z","etag":null,"topics":["docker","docker-image","dockerfile","hot-reload","jar","java","jvm","openjdk"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/asapdotid.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}},"created_at":"2023-08-27T15:24:20.000Z","updated_at":"2023-08-27T15:26:48.000Z","dependencies_parsed_at":"2023-08-27T17:14:36.019Z","dependency_job_id":null,"html_url":"https://github.com/asapdotid/docker-openjdk","commit_stats":null,"previous_names":["asapdotid/docker-openjdk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asapdotid%2Fdocker-openjdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asapdotid%2Fdocker-openjdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asapdotid%2Fdocker-openjdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asapdotid%2Fdocker-openjdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asapdotid","download_url":"https://codeload.github.com/asapdotid/docker-openjdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243847060,"owners_count":20357317,"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":["docker","docker-image","dockerfile","hot-reload","jar","java","jvm","openjdk"],"created_at":"2024-09-25T01:42:12.101Z","updated_at":"2026-01-02T18:06:23.364Z","avatar_url":"https://github.com/asapdotid.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Image OpenJDK Headless\n\nSupport hot reload using PM2\n\n-   OS image: `Alpine Linux`\n-   Base OpenJDK image: `zulu-openjdk` [source](https://github.com/zulu-openjdk/zulu-openjdk)\n-   Hot Reload: `PM2` [Documentation](https://pm2.io/)\n-   Supervisor [Documentation](http://supervisord.org/)\n\nSetup docker image multiple platform:\n\n-   [Multi-platform images](https://docs.docker.com/build/building/multi-platform/)\n-   [Docker container driver](https://docs.docker.com/build/drivers/docker-container/)\n\n## Platform build images:\n\n-   amd64\n-   arm64\n\nDocker image spec:\n\n| Tag | OpenJDK                        | Node Js    | PM2   |\n| --- | ------------------------------ | ---------- | ----- |\n| 20  | OpenJDK JRE Headless 20-latest | 18.17.1-r0 | 5.3.0 |\n| 19  | OpenJDK JRE Headless 19-latest | 18.17.1-r0 | 5.3.0 |\n\n## To Do's\n\n-   ✅ Prepare Docker buildx setup\n-   ✅ Manual build Docker image\n-   ✅ Manual publish Docker image\n-   ⬜ Automatic build Docker image (GitHub workflows)\n-   ⬜ Automatic publish Docker image (GitHub workflows)\n\n## Makefile Commands\n\nHelping utility commands for simple build and push Docker image.\n\n### Help command:\n\n```bash\nmake help\n```\n\n### Build Multi-platform peparation:\n\n```bash\nmake prepare\n```\n\n### Building multi-platform images (build \u0026 push):\n\n```bash\nmake build VER=20 TAG=20\n```\n\nor\n\n```bash\nmake build VER=20 TAG=latest\n```\n\n### Publish docker image to docker hub:\n\nBefore publish image, first login to docker hub via cli:\n\n```bash\ndocker login\n```\n\nPublish docker image:\n\n```bash\nmake push VER=20\n```\n\nOr\n\n```bash\nmake push VER=20 TAG=latest\n```\n\n### Docker inspect the image:\n\n```bash\nmake inspect VER=19 TAG=19\n```\n\n## Image Environment\n\n| Environment variable | Description | Default |\n| -------------------- | ----------- | ------- |\n| `TIMEZONE`           | `timezone`  | `UTC`   |\n\n## Docker Compose setup (running sample jar file)\n\nSample build `jar` file is here, spring-boot` [download](https://github.com/mkyong/spring-boot).\n\nBuild jar file command: `mvn clean package`, sample project `spring-rest-hello-world`\n\n\u003e Connection using `Traefik Proxy (ssl)` [Traefik SSL](https://github.com/asapdotid/dcc-traefik-ssl)\n\n```yaml\n# docker-compose.yml\nversion: \"3.7\"\n\nservices:\n    application:\n        image: docker.io/asapdotid/openjdk:19\n        expose:\n            - 8080\n        networks:\n            - proxy\n        environment:\n            - TIMEZONE=Asia/Jakarta\n        volumes:\n            - ./project/jar:/app\n            - ./cron.conf:/etc/supervisor/conf.d/cron.conf:ro\n            - /scripts:/scripts:ro\n        command: sh -c \"sh /scripts/entrypoint.sh\"\n        labels:\n            - traefik.enable=true\n            - traefil.docker.network=proxy\n            - traefik.http.routers.app-stats.entrypoints=https\n            - traefik.http.routers.app-stats.rule=Host(`app.jogjascript.com`)\n            - traefik.http.services.app-stats.loadbalancer.server.port=8080\n\nnetworks:\n    proxy:\n        name: proxy\n        driver: bridge\n```\n\nScript file for running jar file:\n\n```bash\n#!/bin/sh\n\nset -o errexit\nset -o nounset\nset -o pipefail\n\nprint_line() {\n  echo \"-----------------------------------------------------------------------------\"\n}\n\nsetup_applications() {\n  echo \"Project ready for starting, please wait a moment to build and start!\"\n  if [[ -f \"./spring-rest-hello-world-1.0.jar\" ]]; then\n    pm2-runtime start java --watch \"./**/*\" --name \"app-stats\" -- -jar ./spring-rest-hello-world-1.0.jar\n  else\n    echo \"Project cannot be starting, please check .jar file!\"\n  fi\n}\n\nmain() {\n  print_line\n  setup_applications\n}\n\nmain $@\n```\n\n### Supervisor Config\n\nPlace config to `/etc/supervisor/conf.d/`\n\n## License\n\nMIT / BSD\n\n## Author Information\n\nThis Code was created in 2023 by [Asapdotid](https://github.com/asapdotid).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasapdotid%2Fdocker-openjdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasapdotid%2Fdocker-openjdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasapdotid%2Fdocker-openjdk/lists"}