2014-12-21 57 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中。您可能也想刪除該行。

相關問題