1

gulp-ruby-sassプラグインを使用する Web アプリケーションがあり、 sassgem をインストールするコンテナー内で実行されます。

これは 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

問題は、 を使用して gulp タスクgulp build-cssを実行すると、ログに示されているように gem がdocker-compose見つからないことです: (完全なログはこちら)、bash でコンテナーを実行してファイルを実行すると、すべてがスムーズに実行されます。sassGem sass is not installedbootstrap.sh

sassとの使い方について何か考えはdockerありgulp-ruby-sassますか?

アップデート

gulp タスクの外側から実行すると、次のいずれも見つからないことがわかりました。

docker exec web gulp build-css
4

1 に答える 1

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
于 2016-12-01T21:13:20.007 に答える