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し、それは常にあなたの道にあるでしょう.

あなたの差し迫った問題は、CMDfromDockerfilecommandin でオーバーライドしていることだと思いますfig.yml。(の内容に基づいてstart-server.sh)パスを設定する必要があると思いますか?commandから行を削除する必要がありfig.ymlます。

また、コンテナ内の/appディレクトリを でオーバーライドしています。おそらく、その行も削除したいでしょう。volumes: .:/appfig.yml

于 2014-12-21T22:33:52.907 に答える