Upgrade to Ruby 2.7.

created from upstream commit: 9c8f75084ec39957bca57da8c9e178855baa31ea
This commit is contained in:
Pavel Valena 2020-12-08 15:01:13 +01:00
commit 5cd1e59d71
17 changed files with 3485 additions and 166 deletions

View file

@ -1,7 +1,8 @@
.TH Ruby 2.6 container image
.nh
.TH Ruby 2.7 container image
.PP
This container image includes Ruby 2.6 as a S2I
\[la]https://github.com/openshift/source-to-image\[ra] base image for your Ruby 2.6 applications.
This container image includes Ruby 2.7 as a S2I
\[la]https://github.com/openshift/source-to-image\[ra] base image for your Ruby 2.7 applications.
Users can choose between RHEL, CentOS and Fedora based builder images.
The RHEL images are available in the Red Hat Container Catalog
\[la]https://access.redhat.com/containers/\[ra],
@ -17,8 +18,8 @@ Note: while the examples in this README are calling \fB\fCpodman\fR, you can rep
.SH Description
.PP
Ruby 2.6 available as container is a base platform for
building and running various Ruby 2.6 applications and frameworks.
Ruby 2.7 available as container is a base platform for
building and running various Ruby 2.7 applications and frameworks.
Ruby is the interpreted scripting language for quick and easy object\-oriented programming.
It has many features to process text files and to do system management tasks (as in Perl).
It is simple, straight\-forward, and extensible.
@ -31,9 +32,9 @@ the nodejs itself is included just to make the npm work.
.SH Usage
.PP
For this, we will assume that you are using the \fB\fCubi8/ruby\-26 image\fR, available via \fB\fCruby:2.6\fR imagestream tag in Openshift.
For this, we will assume that you are using the \fB\fCubi8/ruby\-27 image\fR, available via \fB\fCruby:2.7\fR imagestream tag in Openshift.
Building a simple ruby\-sample\-app
\[la]https://github.com/sclorg/s2i-ruby-container/tree/master/2.6/test/puma-test-app\[ra] application
\[la]https://github.com/sclorg/s2i-ruby-container/tree/master/2.7/test/puma-test-app\[ra] application
in Openshift can be achieved with the following step:
.PP
@ -41,7 +42,7 @@ in Openshift can be achieved with the following step:
.nf
```
$ oc new\-app ruby:2.6\~https://github.com/sclorg/s2i\-ruby\-container.git \-\-context\-dir=2.6/test/puma\-test\-app/
$ oc new\-app ruby:2.7\~https://github.com/sclorg/s2i\-ruby\-container.git \-\-context\-dir=2.7/test/puma\-test\-app/
```
.fi
@ -56,7 +57,7 @@ The same application can also be built using the standalone S2I
.nf
```
$ s2i build https://github.com/sclorg/s2i\-ruby\-container.git \-\-context\-dir=2.6/test/puma\-test\-app/ ubi8/ruby\-26 ruby\-sample\-app
$ s2i build https://github.com/sclorg/s2i\-ruby\-container.git \-\-context\-dir=2.7/test/puma\-test\-app/ ubi8/ruby\-27 ruby\-sample\-app
```
.fi
@ -81,42 +82,19 @@ file inside your source code repository.
.RS
.IP \(bu 2
.PP
\fBRACK\_ENV\fP
.PP
This variable specifies the environment where the Ruby application will be deployed (unless overwritten) \- \fB\fCproduction\fR, \fB\fCdevelopment\fR, \fB\fCtest\fR\&.
Each level has different behaviors in terms of logging verbosity, error pages, ruby gem installation, etc.
.PP
\fBNote\fP: Application assets will be compiled only if the \fB\fCRACK\_ENV\fR is set to \fB\fCproduction\fR
\fBRACK\_ENV\fPThis variable specifies the environment where the Ruby application will be deployed (unless overwritten) \- \fB\fCproduction\fR, \fB\fCdevelopment\fR, \fB\fCtest\fR\&.
Each level has different behaviors in terms of logging verbosity, error pages, ruby gem installation, etc.\fBNote\fP: Application assets will be compiled only if the \fB\fCRACK\_ENV\fR is set to \fB\fCproduction\fR
.IP \(bu 2
.PP
\fBDISABLE\_ASSET\_COMPILATION\fP
.PP
This variable set to \fB\fCtrue\fR indicates that the asset compilation process will be skipped. Since this only takes place
\fBDISABLE\_ASSET\_COMPILATION\fPThis variable set to \fB\fCtrue\fR indicates that the asset compilation process will be skipped. Since this only takes place
when the application is run in the \fB\fCproduction\fR environment, it should only be used when assets are already compiled.
.IP \(bu 2
.PP
\fBPUMA\_MIN\_THREADS\fP, \fBPUMA\_MAX\_THREADS\fP
.PP
These variables indicate the minimum and maximum threads that will be available in Puma
\fBPUMA\_MIN\_THREADS\fP, \fBPUMA\_MAX\_THREADS\fPThese variables indicate the minimum and maximum threads that will be available in Puma
\[la]https://github.com/puma/puma\[ra]\&'s thread pool.
.IP \(bu 2
.PP
\fBPUMA\_WORKERS\fP
.PP
This variable indicate the number of worker processes that will be launched. See documentation on Puma's clustered mode
\fBPUMA\_WORKERS\fPThis variable indicate the number of worker processes that will be launched. See documentation on Puma's clustered mode
\[la]https://github.com/puma/puma#clustered-mode\[ra]\&.
.IP \(bu 2
.PP
\fBRUBYGEM\_MIRROR\fP
.PP
Set this variable to use a custom RubyGems mirror URL to download required gem packages during build process.
\fBRUBYGEM\_MIRROR\fPSet this variable to use a custom RubyGems mirror URL to download required gem packages during build process.
.RE
@ -126,13 +104,8 @@ In order to dynamically pick up changes made in your application source code, yo
.RS
.IP \(bu 2
.PP
\fBFor Ruby on Rails applications\fP
.PP
Run the built Rails image with the \fB\fCRAILS\_ENV=development\fR environment variable passed to the podman
\fBFor Ruby on Rails applications\fPRun the built Rails image with the \fB\fCRAILS\_ENV=development\fR environment variable passed to the podman
\[la]https://github.com/containers/libpod\[ra] \fB\fC\-e\fR run flag:
.PP
.RS
@ -141,13 +114,9 @@ $ podman run \-e RAILS\_ENV=development \-p 8080:8080 rails\-app
.fi
.RE
.IP \(bu 2
.PP
\fBFor other types of Ruby applications (Sinatra, Padrino, etc.)\fP
.PP
Your application needs to be built with one of gems that reloads the server every time changes in source code are done inside the running container. Those gems are:
\fBFor other types of Ruby applications (Sinatra, Padrino, etc.)\fPYour application needs to be built with one of gems that reloads the server every time changes in source code are done inside the running container. Those gems are:
.RS
.IP \(bu 2
Shotgun
@ -160,16 +129,10 @@ Rack\-livereload
\[la]https://github.com/johnbintz/rack-livereload\[ra]
.RE
.PP
Please note that in order to be able to run your application in development mode, you need to modify the S2I run script
\[la]https://github.com/openshift/source-to-image#anatomy-of-a-builder-image\[ra], so the web server is launched by the chosen gem, which checks for changes in the source code.
.PP
After you built your application image with your version of S2I run script
\[la]https://github.com/openshift/source-to-image#anatomy-of-a-builder-image\[ra], so the web server is launched by the chosen gem, which checks for changes in the source code.After you built your application image with your version of S2I run script
\[la]https://github.com/openshift/source-to-image#anatomy-of-a-builder-image\[ra], run the image with the RACK\_ENV=development environment variable passed to the podman
\[la]https://github.com/containers/libpod\[ra] \-e run flag:
.PP
.RS
@ -179,6 +142,7 @@ $ podman run \-e RACK\_ENV=development \-p 8080:8080 sinatra\-app
.fi
.RE
.RE
.PP
@ -257,8 +221,7 @@ workers can also be set explicitly by setting \fB\fCPUMA\_WORKERS\fR\&.
.SH See also
.PP
Dockerfile and other sources are available on
\[la]https://github.com/sclorg/s2i-ruby-container\[ra]\&.
Dockerfile and other sources are available on https://github.com/sclorg/s2i\-ruby\-container.
In that repository you also can find another versions of Ruby environment Dockerfiles.
Dockerfile for CentOS is called \fB\fCDockerfile\fR, Dockerfile for RHEL7 is called \fB\fCDockerfile.rhel7\fR,
for RHEL8 it's \fB\fCDockerfile.rhel8\fR and the Fedora Dockerfile is called Dockerfile.fedora.

View file

@ -3,4 +3,4 @@
#
# This will make scl collection binaries work out of box.
unset BASH_ENV PROMPT_COMMAND ENV
source scl_source enable rh-ruby26 $NODEJS_SCL
source scl_source enable rh-ruby27 $NODEJS_SCL