2014-12-21 34 views
0

我试图运行使用图没有数据库Dockerized西纳特拉应用程序,但我不断收到此错误:

$ 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 [email protected] 

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"] 

配置/集装箱/ 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 

回答

1

我觉得这个设置有几个问题。 bundler在哪里安装?通常你会apt-get install ruby-bundler,它将永远在你的道路上。

我相信你眼前的问题是,你有在fig.ymlcommand覆盖从DockerfileCMD。我假设(根据start-server.sh的内容)您需要设置路径?您应该从fig.yml中删除command行。

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

相关问题