[JAVA] [Docker] So erstellen Sie eine virtuelle Umgebung für Rails- und Nuxt.js-Apps

Wie kann ich die Docker-Umgebung mit einer App verwenden, die Nuxt und Rails verwendet? Als Referenz erkläre ich Schritt für Schritt die Dateien und Befehle bis zur Erstellung!

Dieses Mal möchte ich eine Anwendungsentwicklungsumgebung namens "Feeder" erstellen.

Von Ihnen selbst erstellte Dateien und Verzeichnisse

#Datei von Ihnen selbst vorbereitet

|-web/
|    |--App-Ordner
|    |--Dockerfile
|--back/
|    |--App-Ordner
|    |--Dockerfile
|    |--Gemfile
|    |--Gemfile.lock  #Leere Akte
|--docker-compose.yml
|--.git

Einstellungen und Docker-Befehlsdatei für die Containererstellung, den Start (Serverstart), die Imageerstellung usw.

docker-compose.yml


version: "3"

services:
  db:
    container_name: database
    image: mysql:5.7
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: feeder
      MYSQL_DATABASE: feeder
      MYSQL_USER: feeder
      MYSQL_PASSWORD: feeder
      TZ: Asia/Tokyo
    ports:
      - 3308:3306
    volumes:
      - ./database/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./database/data:/var/lib/mysql
      - ./database/sql:/docker-entrypoint-initdb.d

  api:
    container_name: back
    tty: true
    depends_on:
      - db
    build:
      context: back/
      dockerfile: Dockerfile
    ports:
      - 3000:3000
    volumes:
      - ./back/app:/app
    command: rails server -b 0.0.0.0

  front:
    container_name: web
    tty: true
    build:
      context: web/
      dockerfile: Dockerfile
    ports:
      - 8080:3000
    volumes:
      - ./web/app:/app
    command: sh -c 'yarn install; yarn dev'

Beschreibung der Dateien, die für die Erstellung und Erstellung von Bildern erforderlich sind

Bilddesignzeichnung von Nuxt

FROM node:12.5.0-alpine

ENV LANG=C.UTF-8 \
  TZ=Asia/Tokyo

WORKDIR /app

RUN apk update && \
  apk upgrade && \
  npm install -g npm && \
  npm install -g @vue/cli && \
  npm install -g create-nuxt-app

ENV HOST 0.0.0.0
EXPOSE 3000

Schienenbilddesignzeichnung

FROM ruby:2.5

ENV LANG=C.UTF-8 \
  TZ=Asia/Tokyo

WORKDIR /app

RUN apt-get update -qq && \
  apt-get install -y nodejs default-mysql-client

COPY app/Gemfile /app/Gemfile
COPY app/Gemfile.lock /app/Gemfile.lock
RUN bundle install

Gemfile


source 'https://rubygems.org'
gem 'rails', '~> 6.0.3', '>= 6.0.3.2'

Bilderzeugung

$ docker-compose build

Generierung von Nuxt-Anwendungen

$ docker-compose run --rm web yarn create nuxt-app

Rails-Anwendungsgenerierung

$ docker-compose run --rm back rails new . -f -d mysql --api

Einrichten der Verbindung zwischen DB und Schienen

database.yml


# MySQL. Versions 5.5.8 and up are supported.
#
# Install the MySQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default: &default
  adapter: mysql2
  charset: utf8mb4
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: feeder
  password: feeder
  host: database

development:
  <<: *default
  database: feeder

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: feeder

# As with config/credentials.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: feeder
  username: feeder
  password: <%= ENV['FEEDER_DATABASE_PASSWORD'] %>

Datenbank erstellen

$ docker-compose build
$ docker-compose run --rm back rails db:create

Starten Sie den Server (starten Sie den Container)

$ docker-compose up -d

Geben Sie Befehle innerhalb des Dienstes ein (im Container).

$ docker-compose exec service name Befehlsskript zum Ausführen

Ich möchte einen Befehl für eine Rails-Anwendung eingeben

$ docker-compose exec back sh

Ich möchte einen Befehl für eine Nuxt-Anwendung eingeben

$ docker-compose exec web sh

Recommended Posts

[Docker] So erstellen Sie eine virtuelle Umgebung für Rails- und Nuxt.js-Apps
So erstellen Sie ein leichtes Container-Image für Java-Apps
So erstellen und starten Sie eine Docker-Datei für Payara Micro
[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
So erstellen Sie ein Maven-Repository für 2020
[Rails] So erstellen Sie eine Teilvorlage
So erstellen Sie eine Rails 6-Umgebung mit Docker
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
So erstellen Sie überall eine H2-Datenbank
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So erstellen Sie Pagenationen für das "Kaminari" -Array
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie einfach ein Pulldown mit Rails
Rails6.0 ~ So erstellen Sie eine umweltfreundliche Entwicklungsumgebung
[Rails] So erstellen Sie eine Twitter-Freigabeschaltfläche
[Schienen] So erstellen Sie eine Tabelle, fügen eine Spalte hinzu und ändern den Spaltentyp
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
[Rails] So erstellen Sie eine Umgebung mit Docker
Erstellen Sie eine Docker-Umgebung für Oracle 11g XE
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Erstellen Sie eine Entwicklungsumgebung, um Ruby on Jets + React-Apps mit Docker zu erstellen
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
So erstellen Sie eine Methode
Docker-Befehl zum Erstellen eines Rails-Projekts in einem einzigen Schlag in einer Umgebung ohne Ruby
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 1
Festlegen und Beschreiben von Umgebungsvariablen mit Rails zsh
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 2
Erstellen Sie mit Docker eine Umgebung für Rails5 und postgresql, damit auch pgadmin verwendet werden kann
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 0
Erstellen Sie mit Docker eine Vue3-Umgebung!
Vorbereiten der Erstellung einer Rails-Anwendung
[Rails] Ausführen von "Rails db: create" usw. in der Produktionsumgebung EC2
[Rails 6] So erstellen Sie mit cocoon einen dynamischen Formular-Eingabebildschirm
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
So installieren Sie Pry nach dem Erstellen einer Rails-Entwicklungsumgebung mit Docker
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
[Für diejenigen, die Portfolios erstellen] Verwendung von binding.pry mit Docker
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
[Swift5] So erstellen Sie einen Begrüßungsbildschirm