Cet article est publié pour rappeler que la résolution du problème a pris beaucoup de temps en raison d'une mauvaise compréhension de Docker.
J'ai configuré le serveur avec foreman
et essayé d'installer Vue.js dans Ruby on Rails, mais je n'ai pas pu me connecter à localhost: 5000 et il est resté bloqué.
https://qiita.com/Moo_Moo_Farm/items/afacfe4349af6a106253
FROM ruby:2.6
# install package to docker container
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev \
&& apt-get install apt-transport-https \
&& 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 \
&& apt-get update && apt-get install -y yarn \
&& curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& apt-get install -y nodejs mariadb-client \
&& mkdir /vue_app
WORKDIR /vue_app
COPY Gemfile /vue_app/Gemfile
COPY Gemfile.lock /vue_app/Gemfile.lock
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
compose.yml
version: '3'
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
ports:
- '3320:3306'
command: --default-authentication-plugin=mysql_native_password
volumes:
- mysql-data:/var/lib/mysql
web:
build: .
command: bundle exec puma -C config/puma.rb
environment:
RAILS_ENV: development
volumes:
- .:/vue_app
- bundle:/usr/local/bundle
- /app/vendor
- /app/log
- /app/.git
ports:
- "3000:3000"
depends_on:
- db
tty: true
stdin_open: true
volumes:
mysql-data:
driver: local
bundle:
driver: local
Procfile.dev
web: bundle exec rails s
webpacker: ./bin/webpack-dev-server
bin/server
#!/bin/bash -i
bundle install
bundle exec foreman start -f Procfile.dev
https://qiita.com/Moo_Moo_Farm/items/afacfe4349af6a106253#-foreman%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E8%A8%AD%E5%AE%9A
Installez foreman
de la même manière que l'URL de référence, défini de manière à ce que deux serveurs puissent être démarrés en même temps, exécutez docker-copmpose up
et accédez à localhost: 5000
dans le navigateur comme suit A été affiché. ![Capture d'écran 2020-09-11 13.46.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653956/82f92359-31a0-cd5f-a330- e7e36d7c78d7.png)
docker-compose run --rm web bin / server
Procfile.dev
+ web: bundle exec rails s -b 0.0.0.0
- web: bundle exec rails s
Il semble que le numéro de port du contremaître soit défini sur 5000 par défaut, mais spécifiez à nouveau explicitement 5000.
bin/server
#!/bin/bash -i
bundle install
+ bundle exec foreman start -p 5000 -f Procfile.dev
docker-compose run --rm web bin / server
docker-compose.yml
ports:
- - "3000:3000"
+ - "5000:5000"
Cependant, il ne peut pas être résolu. .. ..
https://docs.docker.jp/compose/reference/run.html Réussir le démarrage du serveur en spécifiant à nouveau le numéro de port avec une commande
docker-compose run -p 5000:5000 --rm web bin/server
Cependant, je ne comprends pas pourquoi vous ne pouvez pas vous connecter sauf si vous spécifiez explicitement le numéro de port. .. .. Je n'ai jamais utilisé une telle commande auparavant.
Recommended Posts