2016-09-01 2 views
3

Вывод ошибок в консоли:положение Compass неудачу с Докер составить до

/var/lib/gems/2.1.0/gems/compass-core- 1.0.3/lib/compass/core/sass_extensions/functions/urls.rb:5:in `has?' 
build-server_1  | [10:22:15] : undefined method `has?' for Sass::Util:Module (NoMethodError) 
build-server_1  |   from /var/lib/gems/2.1.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/urls.rb:9:in `included' 

Это, кажется, отсутствует метод has, но не знаете, какая версия рубин или компас или любые флаги, чтобы добавить в текущий файл здесь предотвратить это:

# install ruby RUN apt-get install -y -qq ruby-dev RUN apt-get install make RUN apt-get install rubygems -y

# install compass RUN gem install --no-rdoc --no-ri compass

Пробовал и заменить последний г убий линия с:

RUN apt-get install ruby-ffi -y

И

RUN apt-get install ruby-dev -y

и компас без флагов.

Любые предложения, пожалуйста? Это работает на других машинах. Недавно я сделал новую установку Win 10 на этом paticular и переустановил ruby ​​на моей машине с помощью env-пути, установленного в C: \ Ruby23-x64 \ bin, но не думал, что это повлияет на установку модулей и запуск в контейнере докеров.

DOCKERFILE

version: '2' 
services: 
    node: 
    build: 
     context: . 
     dockerfile: docker/dockerfiles/node-dev 
    ports: 
-  "3000:3000" 
    expose: 
-  "3000" 
    volumes: 
-  .:/usr/src/app 
- /usr/src/app/node_modules 
volumes_from: 
- submissions 
environment: 
- NODE_ENV=development 
links: 
- mongo 
submissions: 
build: 
    context: . 
    dockerfile: docker/dockerfiles/golang 
volumes: 
- /files 
links: 
- mongo 
build-server: 
build: 
    context: . 
    dockerfile: docker/dockerfiles/build-server 
environment: 
- NODE_ENV=development 
volumes_from: 
- node 
links: 
- node 
ports: 
- "8080:8080" 
build-server-admin: 
build: 
    context: . 
    dockerfile: docker/dockerfiles/build-server-admin 
environment: 
- NODE_ENV=development 
volumes_from: 
- node 
mongo: 
image: mongo 
+1

Включите ваш полный файл докеров. – Alkaline

ответ

19

Это должно быть связано с выпуском сассы 3.5. Перед установкой компаса вам необходимо установить правильную версию sass.

RUN gem install --no-rdoc --no-ri sass -v 3.4.22 
RUN gem install --no-rdoc --no-ri compass 
+0

Мне пришлось установить sass и compass в конце – lxm7

+2

Мне пришлось запустить 'gem uninstall sass', чтобы удалить ранее установленный sass 3.5. –

+0

Если у вас есть несколько версий sass, вам нужно удалить 3.5, после того как 'gem uninstall sass' предоставит версию sass, которую нужно удалить. –

2

Я побежал сегодня к такому же вопросу с компасом в Докер контейнере:

[11:12:23] /var/lib/gems/2.1.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/urls.rb:5:in `has?' 
[11:12:23] : undefined method `has?' for Sass::Util:Module (NoMethodError) 
    from /var/lib/gems/2.1.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/urls.rb:9:in `included' 
    from /var/lib/gems/2.1.0/gems/sass-3.5.0.pre.rc.1/lib/sass/script/functions.rb:632:in `include' 

Я установил ее, добавив в свой файл Docker

RUN gem install sass 

Я не уверен, что это лучшее, что можно сделать, но это устранило проблему.

+0

спасибо, попробуем это позже. – lxm7

+0

Не работает, к сожалению, такая же ошибка. Это было после сборки сборщика докеров, а затем докеры. – lxm7

+0

Моя ошибка добавляется, когда я запускал контейнер. Я добавил команду sass install в файле dockerfile, который я использую, когда создаю контейнер с помощью docker-compose (я использую bamboo и nexus). Вы используете инструмент CI для создания своего контейнера? Пользовательское репо? Может быть, у вас может быть какая-то проблема кеширования где-то (и поэтому некоторые зависимости не извлекаются из последней версии)? – remib

 Смежные вопросы

  • Нет связанных вопросов^_^