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.
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
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.