docker-library / ruby

Docker Official Image packaging for Ruby
http://www.ruby-lang.org/
BSD 2-Clause "Simplified" License
590 stars 334 forks source link

Add Windows Server Core variants #130

Open woodie opened 7 years ago

woodie commented 7 years ago

Some folks need to deploy Ruby applications on Windows (with native Windows libraries), so the ruby docker-library should support a windows base image. The python base images for windows are based on windowsservercore which is enormous, but it could probably copy everything over to a nano image with a multi-stage build. I've done that with my Ruby base image.

DevKit includes bash, so we can probably do all the same setup at the other ruby images in bash.

tianon commented 6 years ago

It looks like for Windows, the best option available is https://rubyinstaller.org/? (Which doesn't appear to be official, but is officially sanctioned, so likely acceptable.)

Regarding nanoserver and/or multistage builds, see https://github.com/docker-library/official-images/issues/3383.

I think this is something we're interested in seeing some development effort around, but I'm still a little bit hesitant about officially supporting it. Seeing something similar to the Python Windows Dockerfiles that installs Ruby would be a good first start. :+1:

tianon commented 3 years ago

Coming back to this a few years later, I think the biggest blocker for moving forward is really that the Ruby project doesn't publish official builds for Windows (and building them ourselves is a bit more complicated than we'd like).

If/when that changes, I'd love to see some work around some Windows Server Core-based images.

AlexWayfer commented 3 years ago

Coming back to this a few years later, I think the biggest blocker for moving forward is really that the Ruby project doesn't publish official builds for Windows (and building them ourselves is a bit more complicated than we'd like).

As I see, Ruby doesn't publish official builds for Linux or macOS neither. It provides sources and recommends managements systems or installers. And RubyInstaller seems pretty official way for Windows:

https://www.ruby-lang.org/en/downloads/

image

So this argument seems a bit strange.

tianon commented 3 years ago

Sure, but we can't support macOS, and on Linux we have a lot of really straightforward ways to build from source.

I guess as long as there's actual interest and the RubyInstaller builds keep up reasonably with the official releases, that's probably fine? (However, in the last three years we also haven't really seemed to see much interest in a Windows variant of the Ruby image.)

AlexWayfer commented 3 years ago

Sure, but we can't support macOS, and on Linux we have a lot of really straightforward ways to build from source.

I don't understand why you mention these OSes in the issue about Windows, but… OK.

I guess as long as there's actual interest and the RubyInstaller builds keep up reasonably with the official releases, that's probably fine? (However, in the last three years we also haven't really seemed to see much interest in a Windows variant of the Ruby image.)

FYI, I maintain filewatcher Ruby gem, and it's declared as cross-platform (including Windows), that's the way because I'm here, so I have to run its tests on Windows in CI somehow, but, thanks to Cirrus CI, I found a work-around via choco (it's pretty simple installer, and supports Ruby as well): https://github.com/filewatcher/filewatcher/blob/4a875b4/.cirrus.yaml#L109-L145

tianon commented 3 years ago

Sure, but we can't support macOS, and on Linux we have a lot of really straightforward ways to build from source.

I don't understand why you mention these OSes in the issue about Windows, but… OK.

?

As I see, Ruby doesn't publish official builds for Linux or macOS neither. It provides sources and recommends managements systems or installers. And RubyInstaller seems pretty official way for Windows:

AlexWayfer commented 3 years ago

Sure, but we can't support macOS, and on Linux we have a lot of really straightforward ways to build from source.

I don't understand why you mention these OSes in the issue about Windows, but… OK.

?

As I see, Ruby doesn't publish official builds for Linux or macOS neither. It provides sources and recommends managements systems or installers. And RubyInstaller seems pretty official way for Windows:

My bad, sorry.

I though you meant that any (?) Linux distributive has "official" (especially from the distributive side) Ruby package (binary), and macOS has it built-in and upgradable (as I know), but yes, different Ruby-projects require different Ruby versions, and any version management system would be better for any case.

But I'm not too familiar with Docker, it's your choice and etc., but I'm interested in Docker, Windows, Ruby, especially this case (I guess, with nanoserver there would be a small image).