gpt4 book ai didi

docker - 在Docker容器中找不到gulp-ruby-sass的Sass

转载 作者:行者123 更新时间:2023-12-02 20:18:07 29 4
gpt4 key购买 nike

我有一个使用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

问题是,当使用 gulp build-css执行gulp任务 docker-compose时,找不到日志中显示的 sass gem: Gem sass is not installed(完整日志 here),但是当我使用bash运行容器并执行 bootstrap.sh文件时一切运行顺利。

关于如何将 sassdockergulp-ruby-sass一起使用的任何想法?

更新

我发现从gulp任务外部执行时,它也找不到:
docker exec web gulp build-css

最佳答案

我找到了解决方案!我遵循@ 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

关于docker - 在Docker容器中找不到gulp-ruby-sass的Sass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900605/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com