Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).

Wenn Sie einfach eine Ruby / Rails-Entwicklungsumgebung erstellen möchten, ist Docker die beste Wahl. Hier wird Ubuntu als Host-Betriebssystem verwendet. (Siehe hier für Mac-Hosts)

Im Docker-Container ist das Basisbetriebssystem Ubuntu 20.04, und die Bibliotheken und Ruby selbst, die zum Ausführen von Rails-Anwendungen erforderlich sind, werden installiert. Die Rails-Anwendung selbst kann von einem lokalen Verzeichnis auf dem Host-Betriebssystem aus referenziert werden. Dies dient dazu, dass der Docker-Container die Ausführungsumgebung der Rails-Anwendung verwaltet und die Bearbeitung der Rails-Anwendung und die Quellcodeverwaltung durch den Editor auf dem Host-Betriebssystem realisiert.

Es hat die folgenden Vorzüge.

  1. Sie müssen Ruby oder Rails nicht direkt auf dem Host-Betriebssystem installieren
  2. Es ist auch möglich, verschiedene Versionen von Ruby und Rails nach Bedarf in separaten Containern auszuführen
  3. Der Rails-Quellcode kann mit Ihrem bevorzugten Editor auf dem Host-Betriebssystem bearbeitet werden
  4. Die Git-Verwaltung kann auf den Quellcode des Host-Betriebssystems beschränkt werden
  5. (Die folgende Dockerfile.dev sollte auch von Git verwaltet werden)

Erstellen und starten Sie einen Container

Bitte installieren Sie den Docker-Dienst im Voraus auf dem Host-Betriebssystem.

Legen Sie zunächst die folgenden Dateien in einem beliebigen Verzeichnis ab.

Dockerfile.dev


#Ruby von Docker/Erstellen einer Rails-Entwicklungsumgebung
#
#Installieren Sie eine beliebige Version von Ruby auf einem Ubuntu-basierten Container
#Auch Knoten.Installieren Sie js
#Rails-Anwendungen werden im lokalen Verzeichnis des Host-Betriebssystems und nicht im Container generiert

From ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive

#Erstellen Sie denselben Benutzer wie local
ARG uid=unknown
ARG user=unknown
RUN useradd -m -u ${uid} ${user}

#Aktualisieren Sie die unter Ubuntu installierte Software
RUN apt-get update -y
RUN apt-get upgrade -y

#Passend zu den Paketen, die zum Erstellen von Ruby benötigt werden-Installieren Sie über 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 

#Bei Verwendung von sqlite3 ist eine Bibliothek erforderlich
RUN apt-get install libsqlite3-dev

#Bibliothek erforderlich, wenn MySQL oder MariaDB verwendet wird
RUN apt-get install -y libmysqlclient-dev

#Andere nützliche Werkzeuge
RUN apt-get install -y nano

# ruby-Installieren Sie eine beliebige Ruby-Version mit 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,Installieren Sie npm
RUN apt-get install -y nodejs npm
#n Paket installiert
RUN npm install n -g
#Installieren Sie den Knoten mit dem Paket n
RUN n stable
#Der alte Knoten, den Sie zuerst eingegeben haben.js,Npm entfernen
RUN apt-get purge -y nodejs npm
#Garnpaket einlegen
RUN npm install yarn -g

Im Folgenden wird beschrieben, wie Sie einen Container erstellen (Ändern Sie Ihren_App_Namen in Ihren Anwendungsnamen)

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

Starten Sie den Container

$ 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

Generieren Sie eine Rails-Anwendung in einem Container

Starten Sie Bash auf dem Container und erstellen Sie eine Rails-Anwendung.

$ docker exec -ti $YOURAPP bash

Wechseln Sie in Ihr Anwendungsverzeichnis (Ändern Sie Ihren_App_Namen in Ihren Anwendungsnamen)

$ cd /your_app_name

Führen Sie bundle init aus, um eine Gemfile-Datei zu erstellen

$ bundle init

Bearbeiten Sie die Gemfile (verwenden Sie den Nano-Editor unten)

$ nano Gemfile

Kommentar # gem "Rails" in Gemfile auskommentieren (Ändern Sie # gem "Rails" in gem "Rails")

Installieren Sie Rails-bezogene Gem auf Hersteller / Bundle mit Bundle-Installation

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

Rails New erstellt eine neue Rails-Anwendung in diesem Verzeichnis Überschreiben / Beispiel / Gemfile? (Geben Sie "h" für Hilfe ein) Antworten Sie mit Y, wenn Sie gefragt werden [Ynaqdhm]

$ bundle exec rails new .

Starten Sie eine Rails-Anwendung Stellen Sie die zu bindende IP-Adresse auf 0.0.0.0 ein, damit vom Host-Betriebssystem aus darauf zugegriffen werden kann.

$ bundle exec rails s -b 0.0.0.0

Nachdem die Arbeit am Container abgeschlossen ist, greifen Sie erneut mit dem Browser des Host-Betriebssystems auf http: // localhost: 4000 zu. Wenn Yay! You are on Rails! Im Browser angezeigt wird, ist dies erfolgreich.

Recommended Posts

Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Mac-Version).
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Erstellen Sie eine Debug-Umgebung auf einem Container. Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials.
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Erstellen Sie eine Entwicklungsumgebung, um Ruby on Jets + React-Apps mit Docker zu erstellen
Erstellen Sie mit Docker eine Node.js-Umgebung
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
So beenden Sie Docker für Mac und erstellen eine Docker-Entwicklungsumgebung mit Ubuntu + Vagrant
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
[Ruby] Erstellen einer Ruby-Entwicklungsumgebung unter Ubuntu
So erstellen Sie eine Rails 6-Umgebung mit Docker
Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Erstellen Sie eine Entwicklungsumgebung, in der die Haltepunkte von Ruby on Rails unter Windows funktionieren
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
[Win10] Erstellen Sie eine JSF-Entwicklungsumgebung mit NetBeans
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Erstellen Sie mit Docker (Ubuntu) eine Mecab-Umgebung (NEologd Dictionary).
[Rails] So erstellen Sie eine Umgebung mit Docker
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Erstellen einer Docker-Umgebung mit WSL
Ruby ① Erstellen einer Windows-Umgebung
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
Docker-Befehl zum Erstellen eines Rails-Projekts in einem einzigen Schlag in einer Umgebung ohne Ruby
Erstellen Sie mit IntelliJ IDEA eine Entwicklungsumgebung "Spring Thorough Introduction"
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung