0

我正在尝试使用 fig 运行没有数据库的 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"]

config/container/start-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
4

1 回答 1

1

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

我相信你的直接问题是你CMD用. 我假设(基于 的内容)您需要设置路径?您应该从.Dockerfilecommandfig.ymlstart-server.shcommandfig.yml

您还/app使用volumes: .:/app. fig.yml您可能还想删除该行。

于 2014-12-21T22:33:52.907 回答