macOS Catalina Docker for Mac 2.3.0.5
Dockerfile Quand j'ai essayé de suivre la description officielle, j'ai soudainement eu diverses erreurs, alors j'ai ajouté quelque chose qui manquait à Gugu. De plus, le ruby officiel est la version 2.5, mais je l'ai fait le dernier 2.7.2 le 01/11/2020
officiel
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
#même que ci-dessous
Gemfile Officiellement, la version des rails est 6, mais je l'ai fait le dernier 6 le 2020/11/1
officiel
source 'https://rubygems.org'
gem 'rails', '~>5'
↓
source 'https://rubygems.org'
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
docker-compose.yml
Pour une raison quelconque, la base de données n'a pas été rendue permanente même si j'ai suivi les articles officiels et autres, mais j'étais confuse, mais je l'ai résolue par cette méthode. https://github.com/docker/compose/issues/5012#issuecomment-316518185
(officiel)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 #ajouter à
volumes:
- ./tmp/db:/var/postgres_data #Réparer
ports:
- "5432:5432"
web: #le même
ports: "3001:3000"
Lors de la connexion au serveur de rails, spécifiez 3001.
(Ou changez le port sur la face avant)
## procédure
Veuillez vous référer à cette vidéo pour la procédure de base car elle était facile à comprendre.
[[Construction de l'environnement des rails] Construction de l'environnement avec docker + rails + mysql (même les débutants peuvent terminer en 30 minutes!)](Https://www.youtube.com/watch?v=Fq1PH0Gwi8I)
* Cette vidéo est rails5, ruby2.5 avec mysql au lieu de postgresql
## Connexion DB
* Vous ne pouvez pas vous connecter tant que le conteneur n'est pas démarré.
![スクリーンショット 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)
Liberté de nom
Docker-Set ʻUser` ce qui est décrit dans POSTGRES_USER dans compose.yml
Définissez ce qui est décrit dans POSTGRES_PASSWORD dans `Password` docker-compose.yml
Définissez ce qui est décrit dans `development: database` of` Database`` myapp / config / database.yml`
Recommended Posts