Project overview
Currently I'm trying to assist an open source project and I suggested that since we are spending lots of time trouble shooting configuration settings over multiple platforms, versions, etc that we consider using a Docker container with our stack preconfigured, so the new contributor (I believe) only needs to spin up that container, clone the repo and start coding.
Is Docker the right tool? Will it create more overhead than we realize?
As someone who has only read about Docker until now; laptop wouldn't support it until I got my new one this week - woohoo - and since it's something I'm excited to try I suggested it. It was accepted as a possible way forward and now I'm stuck with my biggest fear; did I pitch something that isn't a good solution.
If this isn't the right tool....
... then do we stick with package.json to run the full set up or is there an alternative? I'm fine with sticking it out with package.json, but I was just hoping to simplify. It's important to understand this OSS project is supported mostly by newer devs, so if it's not simplifying for them then it's a no go for us.
It needs to be both the right tool or improvement for the job and make on-boarding of new contributors more *simplistic than now using package.json
What are your thoughts?
Top comments (10)
docker takes a bit of initial setup, probably a few hours if you're new to it. However, once up and running, there is little overhead in maintaining it in my experience, and if your dev environment is fairly complex, it definitely speeds up time to development from scratch.
Thank you @Jarod for your feedback. I think it's something we'll do and since we are still a small clan it's not irreversible if we decide in a few months its not the best path forward
Hey hey, we are using docker for our project. I never used docker before and I needed few days to create build up script using DockerCE.. But now with one command I can run multiple instances with zero effort 😁
Starting from ngnix with letcrpy bot to all services what are required to project run (db,api,front..)
That's so awesome. Is the project open source by chance? Just thinking I'd love to check out the script
Sorry for late reply, it's not open source but I can make some example for you, how I use docker-compose and Dockerfiles with it.
No worries; you just never know so I had to ask. ;)
Let me think about it. If it makes sense then I'll follow up, but if not I don't want to accept the offer and waste your time. I do really appreciate it though. Thank you! :)
I'm a big fan of one-and-done setup, which is why I usually lean towards using good documentation and useful scripts in package.json; however, the promise of using Docker is appealing. My concern is if it adds a level of complexity to the setup process that would steer people away?
We have a GitHub issue open for this as well.
Docker on Windows still has some issues. We can not use Virtualbox and Docker together due to both requiring different types of virtualization support from Windows. So if the project has a lot of Windows users, it may be better to build a VM image. Otherwise, docker is a good, frictionless solution.
I think it's a positive move and it would definitely add to the attractiveness of the project. The ability to spin up a container and have it instantly work is very gratifying and allows you to get right to business.
The only issue I can think of is that devs using Windows might have a tougher time setting up and using Docker than devs on OSX and Linux. Mainly because Docker requires a bit more living in the command prompt than they might be used to.
So long as you have instructions on how to spin up the container on all three platforms you should be fine.
@detect I'm really happy to here your mirror my thoughts. As a newb I question what I know or don't know and it worries me that I'm leaping in the wrong direction. Super appreciate your feedback especially about Windows users. I'm constantly amazed by how they struggle and their tooling. I'll be sure to work closely with someone on a Windows machine to make sure I understand their platform issues well enough to write good initial documentation and then some of our stronger users will no doubt add bits and pieces of feedback.