-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Alpine linux Dockerfile in addition to the existing Debian one #465
Conversation
The image size reduction is good. I'm not familiar with Alpine Linux, so it might be harder for me to maintain the Dockerfile, but Alpine Linux looks simple enough and even has a web interface to look up packages, so I will give it a try. I have only quickly glanced over the Dockerfile, still need to double-check it and test it, which I will do sometime this week. |
other/bootstrap_daemon/docker/Dockerfile, line 61 at r1 (raw file):
You shouldn't remove ports 443 and 3389, we want the bootstrap node to listen on them because these ports are often open in firewalls. In particular the firewalls a user is behind when trying to connect to your bootstrap node (e.g. university firewall), not the firewall that is on the machine running the bootstrap node. Comments from Reviewable |
@nurupo, I would agree on leaving 3389 enabled, but not about 443. From https://nodes.tox.chat/json we can see that there are only 2-3 hosts out of 72, who have 443 open and have Tox network node service running on it. Quick nmap shows that 32 hosts out of those 72 use port 443/tcp for https service. |
I think the port 443 should be used by default. Having a node running on port 443 is a big win for tox users, as they could connect to the tox network in a network with restrictive firewall. If you remove port 443 from the default configuration, how are the bootstrap node maintainers supposed to know that they should add it if they don't run a https service? But if they do run a https service, they would see during the daemon setup that the daemon uses port 443 and would remove it. Simply removing |
OK, left with default ports. |
I'm having hard time finding documentation for |
Thinking about it more, I'd like to keep the image use Debian. If you want smaller size, you can change it from |
All up to you. Smaller image - smaller attack surface, smaller footprint, smaller downloads. Additional benefit - bootstrap daemon on Alpine is compiled and running with musl libc.
Yes, only short options. It's BusyBox utils, not something unknown/third-party/specific: https://www.busybox.net/downloads/BusyBox.html#adduser |
Check the checkbox that allows collaborators to push to the PR branch. Also, rebase on master. @nurupo can you provide a rationale for your preference? |
@romik-g can you rename your file to Dockerfile.alpine and keep the original one intact? That way, users can choose. |
Also, squash all the commits. |
Uh, I'm just reminding that I have said that I don't want replacing the Debian Jessie image with the Alpine one, e.g. I'm against this PR. |
@nurupo we won't replace it, just add another Dockerfile.alpine with this one in it. @romik-g can you do that? |
@iphydf tell me how to do that, please. Should I rename file in my repo and create another pull request to this one? |
@romik-g I went ahead and did it for you. |
So, who is going to maintain it? I'm committed to fixing the Debian Dockerfile if anything breaks in it, but if Alpine Dockerfile breaks it will either be left broken or will be deleted from the repository due to being broken. |
@nurupo it'll be left broken or deleted. If anyone cares about it, they will step up and fix it. |
I'll add a travis job for it to the nightly build later. Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed. Comments from Reviewable |
This PR replaces original Dockerfile with a re-worked version. New version builds a docker image based on Alpine Linux, which significantly reduces image size (to ~8.5MiB).
This change is