macOS Catalina Docker for Mac 2.3.0.5
Dockerfile Als ich versuchte, der offiziellen Beschreibung zu folgen, bekam ich plötzlich verschiedene Fehler, also fügte ich etwas hinzu, das in Gugu fehlte. Außerdem ist der offizielle Rubin Version 2.5, aber ich habe ihn am 2020/11/1 zum neuesten 2.7.2 gemacht
offiziell
FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
↓
FROM ruby:2.7.2
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn
#wie unten
Gemfile Offiziell ist die Version von Rails 6, aber ich habe sie am 2020/11/1 zum neuesten 6 gemacht
offiziell
source 'https://rubygems.org'
gem 'rails', '~>5'
↓
source 'https://rubygems.org'
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
docker-compose.yml
Aus irgendeinem Grund wurde die DB nicht dauerhaft gemacht, selbst wenn ich den offiziellen und anderen Artikeln folgte, aber ich war verwirrt, aber ich löste es mit dieser Methode. https://github.com/docker/compose/issues/5012#issuecomment-316518185
(offiziell)docker-compose.yml
version: "3"
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
↓
docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
PGDATA: /var/postgres_data #hinzufügen
volumes:
- ./tmp/db:/var/postgres_data #Fix
ports:
- "5432:5432"
web: #das Gleiche
ports: "3001:3000"
Geben Sie beim Herstellen einer Verbindung zum Rails-Server 3001 an.
(Oder ändern Sie den Anschluss auf der Vorderseite)
## Verfahren
In diesem Video finden Sie die grundlegende Vorgehensweise, da es leicht zu verstehen war.
[[Rails-Umgebungskonstruktion] Umgebungskonstruktion mit Docker + Rails + MySQL (selbst Anfänger können in 30 Minuten fertig sein!)](Https://www.youtube.com/watch?v=Fq1PH0Gwi8I)
* Dieses Video ist Rails5, Ruby2.5 mit MySQL anstelle von PostgresQL
## DB-Verbindung
* Sie können keine Verbindung herstellen, es sei denn, der Container wird gestartet.
![スクリーンショット 2020-11-03 9.55.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566220/2a8fc39b-a393-d577-f135-21c61a2d8697.png)
`Name` Freiheit
Legen Sie fest, was in POSTGRES_USER von `User` docker-compose.yml beschrieben ist
Legen Sie fest, was in POSTGRES_PASSWORD unter `Password` docker-compose.yml beschrieben ist
Legen Sie fest, was in `Entwicklung: Datenbank` von` Datenbank`` myapp / config / database.yml` beschrieben ist
Recommended Posts