avivace / ror2-server

Host your own Risk of Rain 2 dedicated server. No technical skills required. Runs everywhere.
https://hub.docker.com/r/avivace/ror2server
GNU General Public License v3.0
169 stars 29 forks source link

Add alternative Dockerfiles and a basic CI #35

Closed dubvulture closed 2 years ago

dubvulture commented 2 years ago

Updated Dockerfiles using official steamcmd docker images (ubuntu-20). Provides three different versions:

  1. vanilla (wine-stable 5.y.z from ubuntu 20.04 repositories)
  2. wine6 (wine-stable 6.y.z from WineHQ repositories)
  3. wine7 (wine-stable 7.y.z from WineHQ repositories)

TODO:

dcasella commented 2 years ago

@avivace do you know if we need something like https://github.com/steamcmd/docker/blob/master/.github/workflows/description.yml to update the README on DockerHub?

(We can verify this after the PR is merged, no rush)

avivace commented 2 years ago

@avivace do you know if we need something like https://github.com/steamcmd/docker/blob/master/.github/workflows/description.yml to update the README on DockerHub?

(We can verify this after the PR is merged, no rush)

I remember seeing the DockerHub description being updated when we pushed to the repository, even without pushing git tags / images. I guess it's some kind of internal hook they set up (on the dockerhub side) when you "plug" the github repository in the DockerHub page (check https://hub.docker.com/r/avivace/ror2server VS their https://hub.docker.com/r/steamcmd/steamcmd, there's no "Source Repository" widget there, so they may need to push the README changes with that action)...

Do we want to remove the "Source Repository" thing there and push manually as they do?

dubvulture commented 2 years ago

Who gets the latest award?

Real world examples of latest:

dubvulture commented 2 years ago

There's also the possibility of using wine-devel and wine-staging, which might make more sense instead of wine 6 and 7. Options:

Note: devel and staging releases from WineHQ are on a biweekly schedule.

dcasella commented 2 years ago

Do we want to remove the "Source Repository" thing there and push manually as they do?

No clue, I propose we leave it as it is and see.

Who gets the latest award?

~I vote for winehq-stable / wine7.~

dubvulture commented 2 years ago

Habemus tags:

brb, updating Dockerfiles

dubvulture commented 2 years ago

(I just noticed you put it as a task in the PR description) Should I draft a suggestion?

🤠

dcasella commented 2 years ago

🤠

Let's see if it works.

dubvulture commented 2 years ago

README has been updated.

dubvulture commented 2 years ago

What about providing built images of devel and staging without adding their wine version in the name (and without pinning their version)? Just a rolling release approach, where a new image is built when a new version is available by triggering a new CI.

I'm not sure about telling people to build their own "debugging" images, I think someone doesn't even know what the magical docker run command actually does.

Or maybe at this point maybe it's more straightforward just to add an ENV variable that when set will replace wine-stable with either wine-devel or wine-staging during the execution of the entrypoint (i.e. when running docker run).

avivace commented 2 years ago

What about providing built images of devel and staging without adding their wine version in the name (and without pinning their version)? Just a rolling release approach, where a new image is built when a new version is available by triggering a new CI.

I'm not sure about telling people to build their own "debugging" images, I think someone doesn't even know what the magical docker run command actually does.

Or maybe at this point maybe it's more straightforward just to add an ENV variable that when set will replace wine-stable with either wine-devel or wine-staging during the execution of the entrypoint (i.e. when running docker run).

I really like that second approach. How larger would the image be in that case?

dcasella commented 2 years ago

Just a rolling release approach, where a new image is built when a new version is available by triggering a new CI.

How do we know when a new Wine release is available? If we can't trigger the CI automatically via some kind of hook, I wouldn't do it.

Or maybe at this point maybe it's more straightforward just to add an ENV variable that when set will replace wine-stable with either wine-devel or wine-staging during the execution of the entrypoint (i.e. when running docker run).

How larger would the image be in that case?

Understandable, but startup time would increase, and it's already awful...

dubvulture commented 2 years ago

How larger would the image be in that case?

Just a few bytes, you just need to modify entry.sh with some ENV checks + apt commands replacing the wine version if needed.

How do we know when a new Wine release is available? If we can't trigger the CI automatically via some kind of hook, I wouldn't do it.

A schedule somehow checking things from the repository? Or just a biweekly schedule that runs when the new devel and staging releases are supposed to be out.

Understandable, but startup time would increase, and it's already awful...

For wine-devel and wine-staging who cares, they're supposed to be run in debugging and "emergency" situations. Meanwhile wine-stable should be kept as is, i.e. installed during the build process.