2016-12-01 24 views
1

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

这是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 [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 

这是引导脚本文件(自举程序):

#! /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 build-css,它没有找到sass宝石,因为它是在日志中显示:Gem sass is not installed(完整的日志here),但是当我运行使用bash容器并执行bootstrap.sh文件一切运行顺利。

任何想法如何使用sassdockergulp-ruby-sass

UPDATE

我发现,从执行的任务,一饮而尽外,它没有找到或者:

docker exec web gulp build-css 
+1

你有没有试过这个呢? docker 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

我很高兴它工作:) –

相关问题