{"action":"created","issue":{"url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/80","repository_url":"https://api.github.com/repos/jhuckaby/Cronicle","labels_url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/80/labels{/name}","comments_url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/80/comments","events_url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/80/events","html_url":"https://github.com/jhuckaby/Cronicle/pull/80","id":342933545,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAyNzE3ODg0","number":80,"title":"Add Docker suport","user":{"login":"SvenDowideit","id":28492,"node_id":"MDQ6VXNlcjI4NDky","avatar_url":"https://avatars2.githubusercontent.com/u/28492?v=4","gravatar_id":"","url":"https://api.github.com/users/SvenDowideit","html_url":"https://github.com/SvenDowideit","followers_url":"https://api.github.com/users/SvenDowideit/followers","following_url":"https://api.github.com/users/SvenDowideit/following{/other_user}","gists_url":"https://api.github.com/users/SvenDowideit/gists{/gist_id}","starred_url":"https://api.github.com/users/SvenDowideit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SvenDowideit/subscriptions","organizations_url":"https://api.github.com/users/SvenDowideit/orgs","repos_url":"https://api.github.com/users/SvenDowideit/repos","events_url":"https://api.github.com/users/SvenDowideit/events{/privacy}","received_events_url":"https://api.github.com/users/SvenDowideit/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-07-20T00:31:46Z","updated_at":"2018-08-10T21:02:23Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/jhuckaby/Cronicle/pulls/80","html_url":"https://github.com/jhuckaby/Cronicle/pull/80","diff_url":"https://github.com/jhuckaby/Cronicle/pull/80.diff","patch_url":"https://github.com/jhuckaby/Cronicle/pull/80.patch"},"body":"for #4 \r\nI'm likely to use it with Docker Swarm for now, so will be able to follow up with a docker-compose file that leverages Traefik at some point.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/comments/412205444","html_url":"https://github.com/jhuckaby/Cronicle/pull/80#issuecomment-412205444","issue_url":"https://api.github.com/repos/jhuckaby/Cronicle/issues/80","id":412205444,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMjIwNTQ0NA==","user":{"login":"jhuckaby","id":700765,"node_id":"MDQ6VXNlcjcwMDc2NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/700765?v=4","gravatar_id":"","url":"https://api.github.com/users/jhuckaby","html_url":"https://github.com/jhuckaby","followers_url":"https://api.github.com/users/jhuckaby/followers","following_url":"https://api.github.com/users/jhuckaby/following{/other_user}","gists_url":"https://api.github.com/users/jhuckaby/gists{/gist_id}","starred_url":"https://api.github.com/users/jhuckaby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhuckaby/subscriptions","organizations_url":"https://api.github.com/users/jhuckaby/orgs","repos_url":"https://api.github.com/users/jhuckaby/repos","events_url":"https://api.github.com/users/jhuckaby/events{/privacy}","received_events_url":"https://api.github.com/users/jhuckaby/received_events","type":"User","site_admin":false},"created_at":"2018-08-10T21:02:23Z","updated_at":"2018-08-10T21:02:23Z","author_association":"OWNER","body":"Hey everyone,\r\n\r\nI see that I've been pinged on this issue.  First of all, thank you for all your hard work!  I am really pleased to see so many people interested in Cronicle.  Now, unfortunately I know absolutely nothing about Docker, having never used it once, so I really cannot merge this PR into the main repo.\r\n\r\nPlease understand my reasoning here -- it's not that your work is sub-par (it's not), or I think Docker sucks (I don't), or anything of the sort.  The problem is, I simply wouldn't be able to support it.  I haven't a clue what these files are or what they do, or how to change them when I upgrade Cronicle in the future.  And if people see a `Dockerfile` in the repo, they will expect that Cronicle fully support Docker, which it does not.\r\n\r\nI have to understand everything that goes in my apps, so if something comes up or I decide to make a change, I know how to fix problems, or make huge architectural shifts.  With these Docker additions, I would be unable to update or change them.  This is my own fault.  Docker is really taking over the world, and is used practically everywhere, so I am solely to blame for not knowing how to use it.  Maybe someday I'll learn, but it's probably a long way off.\r\n\r\nThe last point I have to make here is that Cronicle is still in a pre-release state (still sub-v1.0), and its state is in flux.  I may change all kinds of things before v1.0 which may break this Docker support, and for that reason I cannot accept any PRs (I've already had to reject several).\r\n\r\nI think @belsander has the right idea here, in creating [his own repo](https://github.com/belsander/docker-cronicle) that augments Cronicle for running in a Docker environment.  Could this PR be redesigned to live in it's own repo?  Heck, it even could be made into an [npm](https://www.npmjs.com/) module, with a post-install script that moves the files into `/opt/cronicle/` or whatever.\r\n\r\nI tried to make Cronicle *super* easy to install, so it could be integrated into things like container systems without much trouble.  I see that you guys are still running into roadblocks, though, and having to work around them with hacks.  So maybe I can help with some of those to make the Docker integration cleaner.\r\n\r\nFirst of all, I see that you are using environment variables, and then using [jq](https://stedolan.github.io/jq/) to insert those into the Cronicle JSON configuration file.  Perhaps I can help here.  What if Cronicle simply understood a special environment variable syntax, and allowed those to be configuration overrides on startup?  Example:\r\n\r\n| Environment Variable | Sample Value |\r\n|-|-|\r\n| `CRONICLE_web_socket_use_hostnames` | true |\r\n| `CRONICLE_server_comm_use_hostnames` | true |\r\n| `CRONICLE_WebServer__http_port` | 3012 |\r\n| `CRONICLE_WebServer__https_port` | 3013 |\r\n| `CRONICLE_base_app_url` | http://myserver.com:3012 |\r\n\r\nNote the use of double-underscore (`__`) to denote an object traversal (I don't think you can include dots in environment variable names).  Would this help make the Docker setup process easier?\r\n\r\nI also plan on allowing any configuration option to be overridden on the command-line using dot notation, so you can (soon) do things like this:\r\n\r\n```\r\n/opt/cronicle/bin/control.sh start --web_socket_use_hostnames true --server_comm_use_hostnames true --WebServer.http_port 3012 --WebServer.https_port 3013 --base_app_url \"http://myserver.com:3012\"\r\n```\r\n\r\nWould any of these changes help you make the Docker integration cleaner?\r\n\r\nSecondly, I see that you have to use `debug.sh` to start Cronicle in the foreground (no daemon fork), otherwise Docker will exit the container (sigh).  This is bad for a number of reasons, not the least of which is, it is launched in debug mode, emits the entire debug log to STDOUT, runs with Node deprecation warnings and garbage collection debugging, and cannot do things like restart itself.  Debug mode is meant for debugging, not running in a container.\r\n\r\nSomeone recently contacted me and asked if Cronicle could have a `--foreground` command-line option.  This would simply prevent the background daemon fork, but not enable debug mode.  Would this help?  I can easily add something like this in.\r\n\r\nAnyway, I am extremely sorry that I cannot merge this PR, but I am more than happy to add features to Cronicle that make sense for *all* users, and that includes things that may help you, like environment variable support, CLI config overrides, and foreground launching.  Let me know if any of these would be of interest to you!\r\n\r\nAnd seriously, thank you all for your interest in Cronicle, and your efforts to make it better.\r\n"}}
{"actor":{"display_login":"jhuckaby"}}