Dieser Artikel wurde veröffentlicht, um sich daran zu erinnern, dass die Lösung aufgrund des schlechten Verständnisses von Docker lange gedauert hat.
Ich habe den Server mit foreman
eingerichtet und versucht, Vue.js in Ruby on Rails zu installieren, aber ich konnte keine Verbindung zu localhost: 5000 herstellen und es blieb hängen.
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 Installieren Sie "foreman" auf die gleiche Weise wie die Referenz-URL, stellen Sie ein, dass zwei Server gleichzeitig gestartet werden können, führen Sie "docker-copmpose up" aus und gehen Sie im Browser wie folgt zu "localhost: 5000" Wurde angezeigt. [Screenshot 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
ausProcfile.dev
+ web: bundle exec rails s -b 0.0.0.0
- web: bundle exec rails s
Es scheint, dass die Portnummer des Vorarbeiters standardmäßig auf 5000 festgelegt ist, geben Sie jedoch erneut explizit 5000 an.
bin/server
#!/bin/bash -i
bundle install
+ bundle exec foreman start -p 5000 -f Procfile.dev
docker-compose.yml
ports:
- - "3000:3000"
+ - "5000:5000"
Es kann jedoch nicht gelöst werden. .. ..
https://docs.docker.jp/compose/reference/run.html Es gelang, den Server zu starten, indem die Portnummer erneut mit einem Befehl angegeben wurde
docker-compose run -p 5000:5000 --rm web bin/server
Ich verstehe jedoch nicht, warum Sie keine Verbindung herstellen können, wenn Sie die Portnummer nicht explizit angeben. .. .. Ich habe noch nie einen solchen Befehl verwendet.
Recommended Posts