2016-12-01 22 views
1

gulp-ruby-sassプラグインを使用するWebアプリケーションがあり、sass gemをインストールするコンテナ内で実行されています。Dockerコンテナ内のgulp-ruby-sassにSassが見つかりません

これはDockerfileです:これはGemfileである

#! /bin/bash 

bundle install 
npm install 
jspm install 
npm config set bin-links false 
npm rebuild node-sass 

gulp watch 

source "https://rubygems.org" 

gem "sass" 

そして私

FROM phusion/passenger-customizable:0.9.19 
# Set correct environment variables. 
ENV HOME /root 
# Use baseimage-docker's init process. 
CMD ["/sbin/my_init"] 
# Build system and git. 
RUN /pd_build/utilities.sh && \ 
# Ruby support. 
    /pd_build/ruby-2.3.*.sh && \ 
# Node.js and Meteor support. 
    /pd_build/nodejs.sh && \ 
    npm install -g gulp jspm yarn && \ 
     npm install [email protected] && \ 
     mv node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /usr/bin && \ 
     rm -r node_modules && \ 
# Clean up APT when done. 
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 
EXPOSE 9000 
WORKDIR /var/www/ 
CMD /bin/bash 

これは、ブートストラップスクリプトファイル(アプリケーションをブートストラップする)でありますこの方法でコンテナを起動してください:

docker run -it --name web -p 9000:9000 --volume $(pwd):/var/www brainy_web sh bootstrap.sh 

問題は一気タスクgulp build-cssdocker-compose使用して実行されたとき、それはそれは、ログに示されているようsass宝石を見つけられないということである。Gem sass is not installed(完全なログhere)が、私はbashの持つコンテナを実行するとすべてが円滑に実行されているbootstrap.shファイルを実行します。

sassdockergulp-ruby-sassを使用する方法についてのご意見はありますか?私は一気タスクの外から実行することがわかっ

UPDATE

、それはどちらか見つからない:

docker exec web gulp build-css 
+1

代わりにこれを試してみましたか? ドッカーrun -it --name web -p 9000:9000 - volume $(pwd):/ var/www brainy_web bash bootstrap.sh –

+0

それは有望そうだと思っていましたが、私は試してみて、同じメッセージ(Gem sassインストールされていません) –

+0

私はそれが利用できない環境変数に関連していると推測しています...私はgulp-ruby-sassプラグインを見ていきます。 –

答えて

0

私は解決策を見つけました!私は@ webert-s-limaの助言に従いました。https://stackoverflow.com/a/29999734/532912 コンテナの起動時に、-l引数を追加したばかりです。ステートメントは次のようになります:

docker run -it --name web -p 9000:9000 --volume $(pwd):/var/www brainy_web /bin/bash -l bootstrap.sh 
+0

私はそれがうまくいって:) –

関連する問題