rails6 + Dockerで開発しております。
コンパイル時間が長く、dev-serverを起動して開発を進めたいのですが、
下記のエラーが出てしまいます。
ご教授お願いできませんでしょうか。
/usr/bin/entrypoint.sh: line 8: /app/bin/webpack-dev-server: No such file or directory
-- やってみたこと --
webpackerをyarnでupgrade
$ docker-compose run web yarn upgrade webpacker
同じエラーが出てしまいます。
関係ないかもしれないのですが、
docker-compose run web bin/webpack-dev-serverを実行すると下記のエラーが出ます。
/usr/local/bundle/gems/webpacker-5.4.0/lib/webpacker/dev_server_runner.rb:38:in `initialize': getaddrinfo: Name or service not known (SocketError)
上記のエラーからdocker-compose.ymlのサービス名を_がついていないものに変更しても改善されません。
Rails(Rack) + Webpacker + Dockerでハマったお話
下記がDockerfileとdocker-compose.ymlです
Dockerfile FROM node:14 FROM ruby:3.0.2 ENV LANG C.UTF-8 # ENV RAILS_ENV=production # nodejs/yarn/postgresql-client RUN apt-get update -qq && apt-get install -y nodejs postgresql-client \ && apt-get update && apt-get install -y curl apt-transport-https wget && \ 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_7.x | bash - && \ apt-get install -y nodejs npm && npm install n -g && n 14.16.1 RUN gem install bundler RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 RUN rm -rf /var/lib/apt/lists/* CMD ["rails", "server", "-b", "0.0.0.0"]
docker-compose.yml web: &app_base build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" environment: WEBPACKER_DEV_SERVER_HOST: webpack volumes: - .:/myapp ports: - "3000:3000" depends_on: - db webpack: <<: *app_base command: "bin/webpack-dev-server" environment: BUNDLE_APP_CONFIG: ./.bundle WEBPACKER_DEV_SERVER_HOST: 0.0.0.0 working_dir: "/app" volumes: - .:/myapp ports: - 3035:3035 tty: false stdin_open: false depends_on: - web 長くなってしまうので、DBは省略しています
あなたの回答
tips
プレビュー