图上错误可执行文件:"bundle":在$PATH中找不到可执行文件



我正在尝试使用图运行一个没有数据库的Dockerized sinatra应用程序,但我不断收到此错误:

$ fig up
Recreating my_web_1...
Cannot start container 93f4a091bd6387bd28d8afb8636d2b14623a08d259fba383e8771fee811061a3:   exec: "bundle": executable file not found in $PATH

这是 Dockerfile

FROM ubuntu-nginx
MAINTAINER Ben Bithacker ben@bithacker.org
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
WORKDIR /app
RUN ["/bin/bash", "-l", "-c", "bundle install"]
ADD config/container/start-server.sh /usr/bin/start-server
RUN chmod +x /usr/bin/start-server
ADD . /app
EXPOSE 9292
 CMD ["/usr/bin/start-server"]

配置/容器/启动 server.sh 如下所示

#!/bin/bash
cd /app
source /etc/profile.d/rvm.sh
bundle exec rackup config.ru

fig.yml 看起来像这样:

web:
 build: .
 command: bundle exec rackup config.ru
 volumes:
   - .:/app
 ports: 
    - "3000:3000"
  environment:
   - SOME_VAR=adsfasdfgasdfdfd
   - SOME_VAR2=ba2gezcjsdhwzhlz24zurg5ira

我认为这种设置有几个问题。捆绑器安装在哪里?通常你会apt-get install ruby-bundler,它会一直在你的路上。

我相信你的直接问题是你用fig.yml中的command覆盖了DockerfileCMD。 我假设(基于start-server.sh的内容(您需要设置路径?您应该从fig.yml中删除command行。

您还将覆盖容器中的/app目录,volumes: .:/appfig.yml中。您可能还想删除该行。

相关内容