在Docker容器中找不到Sass

我有一个使用gulp-ruby-sass插件的web应用程序,它运行在安装sass gem的容器中。

这是Dockerfile:

 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 phantomjs-prebuilt@2.1.9 && \ 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 

这是引导脚本文件(引导应用程序):

 #! /bin/bash bundle install npm install jspm install npm config set bin-links false npm rebuild node-sass gulp watch 

这是Gemfile:

 source "https://rubygems.org" gem "sass" 

我以这种方式启动容器:

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

问题是,当使用docker-compose执行gulp任务gulp build-css ,它没有findsass gem,因为它在日志中显示: Gem sass is not installed (完整的日志在这里 ),但是当我运行带有bash的容器并执行bootstrap.sh文件一切运行顺利。

有关如何使用dockergulp-ruby-sass来使用sass任何想法?

UPDATE

我发现从外部执行吞噬任务,它没有find:

 docker exec web gulp build-css 

我find了解决scheme! 我遵循@ webert-s-lima的build议,并在这里: 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