Es ist mühsam, Docker und Docker-Compose einmal zu erstellen, während auf die anderer Personen verwiesen wird, und dann von vorne zu beginnen, wenn Sie eine Anwendung mit denselben Einstellungen erstellen möchten. Also werde ich das Bild, das ich gemacht habe, auf Docker-Hub hochladen, damit ich es leicht duplizieren kann. Dieses Mal werde ich das von Rails 6.0.3 und mysql8.0.2 erstellte Image verwenden. (Referenz: https://qiita.com/shima-zu/items/b825c5a47b3582ef99cc)
Überprüfen Sie zunächst die Container-ID, die bei Docker-Compose verwendet wird, und erstellen Sie ein Image, das von dieser Container-ID an Docker-Hub gesendet werden soll.
Geben Sie diesen Befehl im Terminal ein, um den Status des Containers abzurufen.
macbook-pro rails_app % docker ps -a
Ausgabeergebnis
51334eee76eb rails_app_web "entrypoint.sh bash …" 2 days ago Up 31 minutes 0.0.0.0:3000->3000/tcp rails_app_web_1
40f92b2d8ed5 mysql:8.0.20 "docker-entrypoint.s…" 2 days ago Up 31 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp rails_app_db_1
Es werden zwei Container verwendet: ID = 51334eee76eb
Name = rails_app_web
, ID = 40f92b2d8ed5
, Name = mysql: 8.0.20
. Übrigens entspricht mysql: 8.0.20
dem Tag.
Um zum Docker-Hub zu gelangen, muss der Image-Name den Benutzernamen enthalten. Erstellen Sie daher ein neues Image.
tag
Geben Sie für MySQL Tag = `8.0.20` ein.
Wenn kein Tag angegeben ist, wird das neueste automatisch festgelegt.
Und schieben Sie das Image schließlich zum Docker-Hub.
`docker push Username/ImageName:tag`
Sie können mit schieben.
Ziehen Sie nun das Bild von hier, erstellen Sie einen Container und gehen Sie zu dem Punkt, an dem Sie Yay! Sie sind auf Schienen!
Stellen Sie zuerst das Arbeitsverzeichnis ein und verschieben Sie es.
`mkdir /docker-rails
cd docker-rails`
Ziehen Sie das Bild.
`docker pull Username/rails_app_web`
`docker pull Username/mysql`
Erstellen Sie die erforderlichen Dateien.
` touch { docker-compose.yml, Gemfile, Gemfile.lock, entrypoint.sh, .env }`
Wenn Sie den Build von docker-compose.yml nicht löschen und die Portnummer ändern, wird die Fehlermeldung "Port ist bereits vergeben" angezeigt. Seien Sie also vorsichtig.
`docker-compose run --rm web rails new . --force --no-deps --database=mysql --skip-turbolinks`
Erstellen Sie eine Rails-App im Ordner und installieren Sie den Webpacker erneut.
`docker-compose run --rm web bin/rails webpacker:install`
Fügen Sie database.yml auf die gleiche Weise ein, um die Datenbank zu erstellen.
`docker-compose run --rm web bin/rails db:create`
Starten Sie schließlich den Container im Hintergrund und Sie sind fertig.
`docker-compose up -d`
Recommended Posts