Node-solid-server: Provide official Docker image

Created on 6 Apr 2019  Â·  40Comments  Â·  Source: solid/node-solid-server

To ease the deployment of NSS on an own server, there should be an official Docker image of NSS on the Docker Hub or any other public registry.

Requirements:

  • Provide a production ready Dockerfile
  • Automatic build process and publication in a docker registry (e.g. Docker Hub)
  • Tagged by version to have full control about the version to run
  • Automated tests

As luck would have it, I already prepared a functional, tested Dockerfile of NSS at aveltens/docker-solid-server and run it successfully in production for some months now.

We could move / fork this repository to the Solid organization if you like. Further we need to set up a solid account on Docker Hub and configure the automatic build there.

Most helpful comment

Right, I agree, we should let this go all the way to have a published image.

All 40 comments

@Mitzi-Laszlo apparently https://hub.docker.com/u/solid already exists as an org, can you investigate the status of that?

@Mitzi-Laszlo, @michielbdejong, @jaxoncreed and I discussed this, and we figured that the best way to do it is probably to have a "Docker Maintainer" role within the Solid project, and since @angelo-v has already done the work, it makes sense if he occupies that role, though I may be pushing the process here. Great if you look into having such a role, and if we could have a suitable home at DockerHub for it.

I am willing to maintain an official docker image. But therefore I need access to repository within the solid org as well as solid docker hub account.

I think https://hub.docker.com/u/solid is unrelated to Solid. Maybe we can just pick another name, that's probably easiest and fastest. If we want to try to ask that user to delete their account, then we can also still do that later, and have an alternative Docker hub username in the meantime.

Since solidproject is also taken, I just registered solidweb. If someone has a better proposal we could still change, I just wanted to secure one.

@angelo-v so then I think all that's needed to allow you to complete this, is to add you as committer on this github repo, right?

We could have a seperate user for the docker image (e.g. a fork of https://github.com/angelo-v/docker-solid-server) or add the docker stuff to a subdirectory within this repo here.
To trigger an automated built add docker hub I need to create and connect a "service user", but I still have to figure out if this is just a regular account or something special.

@angelo-v thank you for the contribution!

This conversation is about the project ASAP on Server with Project Manager Jackson Morgan. You can read about all the projects on https://github.com/orgs/solid/projects.

@angelo-v you could either submit a pull request or issue for @jaxoncreed to review as Project Manager. Alternatively you could become a formal Project Contributor and work closely with the Project Manager on the whole project. The admin privileges are a reflection of the role and responsibility. What would you prefer?

@michielbdejong I'll ask around to see who is responsible for https://hub.docker.com/u/solid as well as https://hub.docker.com/u/solidproject and get back to you if I find anything. Meanwhile I'll leave @jaxoncreed as Project Manager to decide if https://hub.docker.com/u/solidweb is the best account to use.

Actually, @Mitzi-Laszlo , I think this is broader than the project, we'd want to have Docker images of more than NSS5 at some point. I think this a role closer to the Release Manager than a specific project, though certainly, working with @jaxoncreed is how we'd do it now.

I am preferring a dedicated repository within the solid organization, e.g. solid/docker-nss. It would be enough for me to have the permissions for this repository. Just placing a PR here would not be enough, because this does not allow me to setup the docker build. I could do it anyway, but then someone else has to take the "Docker maintainer" role.

Right! It could be a part of the release manager's responsibilities, but I think it makes sense to have it as a separate role in the interest of making it easier for more people to contribute.

So, how are we proceeding here?

@jaxoncreed as Project Manager of the ASAP on Server project would be the one to decide a route forward as well as if he would be open to @angelo-v being a formal Project Contributor for this route forward

@kjetilk @angelo-v What would be the project scope of the broader idea and who would be responsible for leading it?

If it's helpful to talk perhaps we should raise this point at the next W3C Solid Community Group call

@angelo-v Is it possible for you to make a pull request to Node Solid Server and we'll approve it.

Like I think it makes sense to have https://github.com/angelo-v/docker-solid-server integrated directly into the NSS source

Ok, who will ensure the integration with docker hub, proper tagging and regular updating?

Ideally this will be done in the same breath as a new version is released to npm

@kjetilk are you okay with taking this on when you push?

Even better to have this (npm publish + docker push) automated by Travis or similar upon pushing a git tag.

Sent from my iPhone

On May 2, 2019, at 4:41 PM, jaxoncreed notifications@github.com wrote:

@kjetilk are you okay with taking this on when you push?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, having Travis doing this is attractive! Anyone want to look into that?

You could just setup docker hub to automatically build git tags. You are tagging with version numbers anyway to release something, do you?

Docker image created here https://github.com/solid/node-solid-server/blob/065ad183224cef744cc8a7d9fa421c49ce7e7eb1/Dockerfile

This is not a docker image, just a Dockerfile. It does not address the issue, that there is no official docker image in any repository and no automated deployment process to publish such.

@jaxoncreed @kjetilk - This should clearly be reopened. I suggest that closing should not generally be done until the issue opener (or a reasonable number of suitably knowledgeable others) concurs that a proposed solution (PR or otherwise) does in fact solve their reported issue.

I think it should let this repository be a Docker image and publish on Dockerhub.

I think it's for @angelo-v requirement :).

Right, I agree, we should let this go all the way to have a published image.

No updates in awhile on this other than moving it back to 'To do'.

It seems like the ideal next step is for someone on the solid team to use Docker Hub to set up automated builds of docker images ('autobuilds') from the Dockerfile in this repo.

I would do this, but I believe only someone in the 'solid' GitHub Organization can set up docker hub autobuilds for this repo.

Lastly, a detail to be worked out would be what docker hub user/organization should publish the image. Can anyone on the solid team say whether this 'solidproject' docker hub user is controlled by a member of the solid team? https://hub.docker.com/u/solidproject

Update: I merged solid/node-solid-server:master into my fork, set up autobuilds on https://hub.docker.com/r/gobengo/node-solid-server to build all git tags, and then copied all the tags from solid/node-solid-server to gobengo/node-solid-server, and it succeeded in building e.g. v5.2.2. Just sharing to say that the Dockerfile seems to be working in Docker hubs autobuild stuff, so if a member of the Solid team does the same, it shouldn't take much more than 15m.

Since solidproject is also taken, I just registered solidweb. If someone has a better proposal we could still change, I just wanted to secure one.

We still do not seem to know who controlls solidproject :( If you want to use solidweb let me know

I would welcome a pull request to implement an official docker image. I apologize as maintaining NSS is not my full time job and I've been relatively busy over the past few weeks.

@jaxoncreed I don't think any PR here can be done to host a docker image on docker hub. Someone at inrupt and/or other trusted organizations needs to click through the GUI in Docker Hub to set up autobuilds so that every git tag pushed here results in a built image tagged and hosted on docker hub.

@dmitrizagidulin and I set it up for life-server at https://hub.docker.com/r/interopalliance/life-server in just a couple of minutes.

What's really missing is the blessing of some docker hub account that can be considered 'official', e.g. it's governed like other parts of the solid project are, with some amount of transparency and review to any major decisions. It might make sense for the Self Hosting panel to shepherd that? https://github.com/solid/self-hosting-panel

@angelo-v solidweb seems fine to me as a name. https://hub.docker.com/u/node-solid-server is also not taken.

It also seems that https://hub.docker.com/u/inrupt was created a few days ago, soon after my last comment. Someone who works there may also be interested in people using an 'inrupt/node-solid-server' image.

I requested docker as a github app for the solid org and asked @Mitzi-Laszlo to approve it.

Ah, cool! I saw the request, and given the thread that has been here, I approved it. :-)

@jaxoncreed @angelo-v @dmitrizagidulin @kjetilk @gobengo let me know your Docker Hub username if you have one, so I can add you to the https://hub.docker.com/r/nodesolidserver org. Automatic builds have been set up now so it will probably not require us to log in often, but currently it has me as the only org member.

@michielbdejong my docker hub username is aveltens.

Thanks for moving on with this, yet I do not consider this ticket solved. The provided docker file does not appear to be production ready to me. I put some efforts into this at https://github.com/angelo-v/docker-solid-server - regarding code as well as documentation.

If you like I prepare a PR moving stuff from there into a subfolder in this repo, but than you need to adjust the automated build again since the Dockerfile will move to a subfolder.

Regarding inrupt: Would love to see a inrupt/pod-server image :)

@aveltens ah yes please do, sorry. This just uses https://github.com/solid/node-solid-server/blob/master/Dockerfile.

Subfolder sounds like a good solution!

Added you as an owner on the Docker org, once your PR is merged, you can edit the build context from / to whatever you call the folder, using:
https://hub.docker.com/repository/docker/nodesolidserver/node-solid-server/builds/edit

Was this page helpful?
0 / 5 - 0 ratings

Related issues

justinwb picture justinwb  Â·  6Comments

nicola picture nicola  Â·  4Comments

rubensworks picture rubensworks  Â·  4Comments

csarven picture csarven  Â·  6Comments

jaxoncreed picture jaxoncreed  Â·  5Comments