Ask A Question

Notifications

You’re not receiving notifications from this thread.

Docker build fails with "cssbundling-rails: Command build failed, ensure `yarn build:css` runs without errors" (it does)

Jay asked in General

Hi! I'm having a little trouble with building a docker image for an out-of-the-box rails app. It's failing with the error below (cssbundling-rails: Command build failed, ensure yarn build:css runs without errors), although yarn build:css does in fact work without errors. The Dockerfile is generated by Rails with no changes, but it's here for reference.

Is it expected that a person would be able to build a Docker image from the default Rails Dockerfile without any further configuration?

Thanks! Details below.

-> ruby --version
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin23]
-> rails --version
Rails 7.1.1
-> yarn --version
1.22.19
-> rails new bookstore -d postgresql -c bootstrap
[stuff happens]
-> cd bookstore
-> docker build -t bookstore .

Some log messages removed, but it fails with the following error:

=> [build 8/9] RUN bundle exec bootsnap precompile app/ lib/ 0.8s
=> ERROR [build 9/9] RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile 4.7s
------
 > [build 9/9] RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile:
1.488 yarn install v1.22.19
1.547 [1/4] Resolving packages...
1.618 success Already up-to-date.
1.627 Done in 0.14s.
1.830 yarn run v1.22.19
1.897 $ yarn build:css:compile && yarn build:css:prefix
2.170 $ sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules
4.509 $ postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css
4.595 Segmentation fault
4.609 error Command failed with exit code 139.
4.609 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
4.635 error Command failed with exit code 139.
4.635 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
4.650 bin/rails aborted!
4.650 cssbundling-rails: Command build failed, ensure `yarn build:css` runs without errors
4.650
4.650 Tasks: TOP => assets:precompile => css:build
4.650 (See full trace by running task with --trace)
------
Dockerfile:50
--------------------
  48 |
  49 |     # Precompiling assets for production without requiring secret RAILS_MASTER_KEY
  50 | >>> RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
  51 |
  52 |
--------------------

However, yarn build:css seems to run fine:

-> yarn run v1.22.19
warning ../package.json: No license field
$ yarn build:css:compile && yarn build:css:prefix
warning ../package.json: No license field
$ sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules
warning ../package.json: No license field
$ postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css
✨  Done in 3.44s.

As does SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile

-> SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
yarn install v1.22.19
warning ../package.json: No license field
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.17s.
yarn run v1.22.19
warning ../package.json: No license field
$ yarn build:css:compile && yarn build:css:prefix
warning ../package.json: No license field
$ sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules
warning ../package.json: No license field
$ postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css
✨  Done in 4.52s.
Reply

For any other folks out there struggling with this problem, in my case it turned out to be a docker issue.

  1. On Docker desktop, Settings > General
  2. Select gRPC FUSE instead of VirtioFS, which I believe is the default
  3. Uncheck Use Virtualization framework

Open a new terminal tab, and build again:

docker build --no-cache -t blog .
Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 79,047+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more.

    © 2023 GoRails, LLC. All rights reserved.