2016-12-01 54 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

我很高興它工作:) –

相關問題