Contenidor d'una aplicació Ruby mitjançant Dockerfile

Contenidor D Una Aplicacio Ruby Mitjancant Dockerfile



En aquest tutorial detallat, us guiarem pel procés d'acoblament d'una aplicació Ruby bàsica. Això us proporcionarà els blocs bàsics de les eines i les funcions que cal utilitzar quan necessiteu contenidor una aplicació Ruby.

Requisits:

Per seguir aquest tutorial, assegureu-vos que disposeu de les eines i recursos següents:

  1. Docker Engine versió 23 i posterior
  2. S'ha instal·lat l'intèrpret Ruby a la màquina host
  3. Connectivitat de xarxa per descarregar les imatges de Docker
  4. Permisos suficients per executar i utilitzar Docker a la màquina host

Amb els requisits donats complerts, continuem amb el tutorial.







Creeu una aplicació Ruby

El primer pas és configurar l'aplicació Ruby que volem contener. Per simplificar, construïm un servidor HTTP bàsic amb Ruby que retorna un 'Hola món' bàsic.



Creeu el directori per emmagatzemar el codi i navegueu al directori:



mkdir hola_http
cd hola_http

Al directori del projecte, creeu un fitxer per emmagatzemar el codi font. Podeu anomenar aquest fitxer amb qualsevol nom adequat.





$ toqueu principal. rb

A continuació, editeu el fitxer 'main.rb' i deseu el codi font de la vostra aplicació. En el nostre cas, el codi d'exemple és el següent:

requereixen 'webrick'

servidor = WEBrick::HTTPServer . nou ( Port: 2030 )

servidor. muntar_proc '/' fer | requeriment, res |

res. tipus_contingut = 'text/llaç'

res. cos = 'Hola món des de Docker'

final

trampa ( 'INT' ) { servidor. tancar }

servidor. començar

El codi d'exemple donat utilitza la biblioteca webrick que s'inclou a l'ecosistema Ruby de manera predeterminada per crear un servidor HTTP bàsic que s'executi al port 2030.



Configura el Dockerfile

Un cop tinguem l'aplicació preparada i configurada, podem continuar i configurar el Dockerfile. Això defineix totes les instruccions sobre com volem que funcioni el contenidor.

Creeu un Dockerfile al directori del projecte:

$ toqueu Dockerfile

A continuació, editeu el fitxer i afegiu les instruccions de creació de la següent manera:

DE rubí:3.3.0

DIR. TREBALL / aplicació

COPIA principal. rb .

EXPOSAR 2030

CMD [ 'robí' , 'main.rb' ]

En aquest cas, utilitzem el Dockerfile per especificar que volem utilitzar la versió de la imatge Ruby 3.3.0 i establir el directori de treball a '/app'. Aleshores copiem l'script 'main.rb' al directori de treball.

També exposem el port 2030 per permetre'ns accedir al servidor HTTP. Per assegurar-nos que el servidor s'inicia quan s'executa el contenidor, utilitzem la instrucció CMD i passem el fitxer 'main.rb'.

Creeu la imatge Docker

Ara podem continuar i construir la imatge des del Dockerfile. Podem utilitzar l'ordre 'docker build' de la següent manera:

construcció docker - t robí - http - servidor.

Aquesta ordre diu a Docker que creï una imatge anomenada 'ruby-http-server' utilitzant el directori actual com a context de construcció.

Executeu el contenidor Docker

Un cop hem creat la imatge amb èxit, podem crear un contenidor a partir de la imatge tal com es mostra a la següent comanda:

Docker Run - pàg 2030 : 2030 robí - http - servidor

L'ordre anterior hauria de crear un contenidor nou amb la imatge creada anteriorment i mapejar el port 2030 del contenidor al port 2030 de la màquina amfitrió.

Per comprovar si el servidor web funciona, podem fer una sol·licitud HTTP a l'adreça del contenidor de la següent manera:

$ curl http: // localhost: 2030

Això hauria d'imprimir el missatge que es defineix al fitxer “main.rb”.

Conclusió

En aquesta publicació, vam tractar els fonaments de la contenció d'una aplicació Ruby mitjançant el Dockerfile i la imatge oficial de Ruby.