Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 彪马不会从码头工人开始_Ruby On Rails_Docker_Puma - Fatal编程技术网

Ruby on rails 彪马不会从码头工人开始

Ruby on rails 彪马不会从码头工人开始,ruby-on-rails,docker,puma,Ruby On Rails,Docker,Puma,我当前在尝试运行docker compose up时遇到问题。我的GEMA文件中有Puma,但我得到以下错误 web_1 | Puma starting in single mode... web_1 | * Version 4.3.6 (ruby 2.6.6-p146), codename: Mysterious Traveller web_1 | * Min threads: 5, max threads: 5 web_1 | * Environment: development w

我当前在尝试运行
docker compose up
时遇到问题。我的GEMA文件中有Puma,但我得到以下错误

web_1 | Puma starting in single mode...

web_1 | * Version 4.3.6 (ruby 2.6.6-p146), codename: Mysterious Traveller

web_1 | * Min threads: 5, max threads: 5

web_1 | * Environment: development

web_1 | * Listening on tcp://0.0.0.0:3000

web_1 | bundler: failed to load command: puma (/usr/local/bundle/bin/puma)

web_1 | Errno::ENOENT: No such file or directory @ rb_sysopen - tmp/pids/server.pid
我知道它可能没有tmp/pids文件,因为我是如何启动我的服务器的。然而,在我的Dockerfile中,我正在创建这个目录,所以它不应该再收到这个错误。你知道为什么我仍然会犯这个错误吗

Dockerfile

FROM ruby:2.6.6-alpine3.11
RUN apk add --update --virtual runtime-deps libffi-dev readline tzdata git
WORKDIR /tmp
ADD Gemfile* ./
RUN apk add --virtual build-deps build-base libc-dev linux-headers libxml2-dev libxslt-dev readline-dev && \
    apk add --update ruby-nokogiri && \
    gem install bundler:2.1.4 && \
    bundle install --jobs=2 && \
    apk del build-deps
ENV APP_HOME /app
COPY . $APP_HOME
WORKDIR $APP_HOME
RUN mkdir -p tmp/pids
EXPOSE 3000
CMD ["bundle","exec","puma","-C","config/puma.rb"]

您能否确认已创建/app/tmp/pids目录,并且该目录中没有现有的server.pid文件?通常,启动脚本会在启动服务器之前删除该文件。此命令的输出似乎为空
runecho$(ls-1/tmp/pids)
在/app/tmp/pids
ls:/app/tmp/pids上重试:没有这样的文件或目录
我将mkdir切换到
运行mkdir-p/app/tmp/pids
,现在回音的输出再次为空。这是否是导致无法创建的权限问题?能否确认已创建/app/tmp/pids目录,并且该目录中没有现有的server.pid文件?通常,启动脚本会在启动服务器之前删除该文件。此命令的输出似乎为空
runecho$(ls-1/tmp/pids)
在/app/tmp/pids
ls:/app/tmp/pids上重试:没有这样的文件或目录
我将mkdir切换到
运行mkdir-p/app/tmp/pids
,现在回音的输出再次为空。这可能是导致无法创建的权限问题吗?