Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Ubuntu)

Si vous souhaitez créer facilement un environnement de développement Ruby / Rails, Docker est le meilleur choix. Ici, Ubuntu est utilisé comme système d'exploitation hôte. (Voir ici pour les hôtes Mac)

Dans le conteneur Docker, le système d'exploitation de base est Ubuntu 20.04, et les bibliothèques et Ruby lui-même nécessaires pour exécuter les applications Rails sont installés. L'application Rails elle-même peut être référencée à partir d'un répertoire local sur le système d'exploitation hôte. Il s'agit pour le conteneur Docker de gérer l'environnement d'exécution de l'application Rails, et de réaliser l'édition de l'application Rails et la gestion du code source par l'éditeur sur l'OS hôte.

Il a les mérites suivants.

  1. Pas besoin d'installer Ruby ou Rails directement sur le système d'exploitation hôte
  2. Il est également possible d'exécuter différentes versions de Ruby et Rails dans des conteneurs séparés selon les besoins
  3. Le code source des rails peut être édité avec votre éditeur préféré sur le système d'exploitation hôte
  4. La gestion Git peut être limitée au code source sur le système d'exploitation hôte
  5. (Le Dockerfile.dev suivant doit également être géré par Git)

Construire et lancer un conteneur

Veuillez installer le service Docker sur le système d'exploitation hôte à l'avance.

Tout d'abord, placez les fichiers suivants dans n'importe quel répertoire.

Dockerfile.dev


#Ruby par Docker/Construire un environnement de développement Rails
#
#Installez n'importe quelle version de Ruby sur un conteneur basé sur Ubuntu
#Aussi, node.Installez js
#Les applications Rails sont générées dans le répertoire local du système d'exploitation hôte, pas dans le conteneur

From ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive

#Créer le même utilisateur que local
ARG uid=unknown
ARG user=unknown
RUN useradd -m -u ${uid} ${user}

#Mettre à jour le logiciel installé sur Ubuntu
RUN apt-get update -y
RUN apt-get upgrade -y

#Apt les packages nécessaires pour construire Ruby-Installer via get
RUN apt-get install -y build-essential
RUN apt-get install -y libssl-dev libreadline-dev zlib1g-dev
RUN apt-get install -y git wget 

#Bibliothèque requise lors de l'utilisation de sqlite3
RUN apt-get install libsqlite3-dev

#Bibliothèque requise lors de l'utilisation de MySQL ou MariaDB
RUN apt-get install -y libmysqlclient-dev

#Autres outils utiles
RUN apt-get install -y nano

# ruby-Installez n'importe quelle version de Ruby en utilisant build
RUN git clone --depth=1 https://github.com/rbenv/ruby-build
RUN PREFIX=/usr/local ./ruby-build/install.sh
RUN rm -rf ruby-build
RUN ruby-build 2.7.2 /usr/local

# node.js,Installer npm
RUN apt-get install -y nodejs npm
#n package installé
RUN npm install n -g
#Installer le nœud à l'aide du package n
RUN n stable
#L'ancien nœud que vous avez mis en premier.js,Supprimer npm
RUN apt-get purge -y nodejs npm
#Installer le paquet de fils
RUN npm install yarn -g

Voici comment créer un conteneur (Remplacez votre_app_name par le nom de votre application)

$ export YOURAPP=your_app_name
$ docker build -t $YOURAPP --build-arg uid=$(id -u $USER) --build-arg user=$USER -f Dockerfile.dev .

Démarrez le conteneur

$ export REPO=`pwd`
$ docker run -d --name $YOURAPP -v $REPO/:/$YOURAPP/ -p 4000:3000 -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -ti $YOURAPP

Générer une application Rails dans un conteneur

Démarrez bash sur le conteneur et créez une application Rails.

$ docker exec -ti $YOURAPP bash

Accédez à votre répertoire d'applications (Remplacez votre_app_name par le nom de votre application)

$ cd /your_app_name

Exécutez le bundle init pour créer un fichier Gemfile

$ bundle init

Modifiez le Gemfile (utilisez l'éditeur nano ci-dessous)

$ nano Gemfile

Décommenter # gem "rails" dans Gemfile (Remplacez # gem "rails" par gem "rails")

Installer la Gemme associée à Rails sur le fournisseur / bundle avec l'installation du bundle

$ bundle config set path 'vendor/bundle'
$ bundle install

rails new crée une nouvelle application Rails dans ce répertoire Overwrite / example / Gemfile? (Entrez "h" pour obtenir de l'aide) Répondez Y à la question [Ynaqdhm]

$ bundle exec rails new .

Lancer une application Rails Définissez l'adresse IP à lier sur 0.0.0.0 afin qu'elle soit accessible à partir du système d'exploitation hôte.

$ bundle exec rails s -b 0.0.0.0

Maintenant que le travail sur le conteneur est terminé, accédez à nouveau à http: // localhost: 4000 avec le navigateur du système d'exploitation hôte. Si Yay! You are on Rails! S'affiche dans le navigateur, cela signifie que l'opération réussit.

Recommended Posts

Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Ubuntu)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Mac)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Créer un environnement de développement PureScript avec Docker
Créer un environnement de développement Wordpress avec Docker
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
Créer un environnement de développement pour Docker + Rails6 + Postgresql
Créez rapidement un environnement de développement WordPress avec Docker
Créer un environnement de débogage sur un conteneur - Créer un environnement de développement local pour les didacticiels Rails avec Docker -
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker
Créer un environnement Node.js avec Docker
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
[Ruby] Création d'un environnement de développement Ruby sur Ubuntu
Comment créer un environnement Rails 6 avec Docker
Construction d'un environnement de développement simple Docker + Django
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Créez un environnement de développement où les points d'arrêt de Ruby on Rails fonctionnent sous Windows
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Créer un environnement Laravel / Docker avec VSCode devcontainer
[Copier et coller] Créez un environnement de développement Laravel avec Docker Compose, partie 2
Construction de l'environnement de développement Simple Docker Compose + Django
[Win10] Créer un environnement de développement JSF avec NetBeans
Créer un environnement de développement pour Docker, Java, vs code
Créer un environnement mecab (dictionnaire NEologd) avec Docker (ubuntu)
[Rails] Comment créer un environnement avec Docker
Créer un environnement de développement Spring Boot avec docker
Créer un environnement de développement Java avec VS Code
[Note] Créez un environnement Python3 avec Docker dans EC2
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
Essayez de créer un environnement de développement Java à l'aide de Docker
[Docker] Construction de l'environnement Rails 5.2 avec docker
Créer un environnement Docker avec WSL
Ruby ① Création d'un environnement Windows
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Commande Docker pour créer un projet Rails avec un seul coup dans l'environnement sans Ruby
Créez un environnement de développement «Spring Thorough Introduction» avec IntelliJ IDEA
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
J'ai essayé de créer un environnement de développement padrino avec Docker
Créez un environnement Vue3 avec Docker!
Créer un environnement Tomcat 8.5 avec Pleiades 4.8