$ rails db:system:change --to=postgresql
#Dockerfile
FROM ruby:2.7.1 #Faites correspondre la version. Vérifier avec Gemfile
RUN curl https://deb.nodesource.com/setup_12.x | bash
RUN curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y nodejs yarn postgresql-client
RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y postgresql-client --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN gem install bundler
RUN bundle install
ADD . /myapp
↑ J'ai eu diverses erreurs et j'y suis allé, mais je reçois toujours un avertissement. Pien
#docker-compose.yml
version: '3'
services:
db:
image: postgres
ports:
- '5432:5432'
volumes:
- postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=password # Si vous ne définissez pas de mot de passe arbitraire, une erreur se produira.
web:
build:
context: .
dockerfile: Dockerfile
command: bundle exec rails s -p 3000 -b '0.0.0.0'
tty: true
stdin_open: true
depends_on:
- db
ports:
- "3000:3000"
volumes:
- .:/myapp #Les modifications du code source sont immédiatement reflétées dans Docker
volumes:
postgresql-data:
driver: local
database.yml
#Omettre le commentaire
#le mot de passe est docker-compose.Ce qui a été défini avec yml
default: &default
adapter: postgresql
encoding: utf8
host: db
username: postgres
password: password
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: mayby_docker_development
#Omettre le commentaire
test:
<<: *default
database: mayby_docker_test
#Omettre le commentaire
production:
<<: *default
database: mayby_docker_production
username: mayby_docker
password: <%= ENV['MAYBY_DOCKER_DATABASE_PASSWORD'] %>
webpacker.yml
check_yarn_integrity: false
#default,Cela semblait inutile à moins que les deux développements ne soient définis sur faux.
$ docker-compose build
Créez une base de données et migrez.
$ docker-compose run web rake db:create db:migrate
S'il est affiché en local: 3000, il semble que cela ait été fait pour le moment.
$ docker-compose up
[Rails] Que faire si "Impossible de rendre la console depuis
config/environment/development.rb
config.web_console.whitelisted_ips = 'Adresse IP rejetée'
Je l'ai fait, mais il y en a encore d'autres
Il y avait quelque chose appelé une erreur de segmentation liée au SaaS. Quand j'essaye de google avec le dernier pouvoir,
Résolution du problème selon lequel Rails 6 provoquait une erreur de segmentation
Il y avait un blog divin.
assets.rb
#Arrêter la compilation parallèle des asetts (contre-mesures contre les erreurs de segmentation)
Rails.application.config.assets.configure do |env|
env.export_concurrent = false
end
On dit qu'une gemme de contre-mesure sera publiée, mais je ne suis pas encore sûr, donc j'attendrai un moment.
Recommended Posts