docker-rails-example icon indicating copy to clipboard operation
docker-rails-example copied to clipboard

Build on DigitalOcean Droplet fails

Open alexanderbahlk opened this issue 1 year ago • 2 comments

Great Work Nick!

All works fine in development, however, launching on a DigitalOcean Droplet does not work.

Here is the output

✔ Network unicorn_new_default Created 0.4s ✔ Volume "unicorn_new_redis" Created 0.0s ✔ Volume "unicorn_new_postgres" Created 0.0s ✔ Container unicorn_new-redis-1 Created 0.8s ✔ Container unicorn_new-js-1 Created 0.8s ✔ Container unicorn_new-css-1 Created 0.8s ✔ Container unicorn_new-postgres-1 Created 0.8s ✔ Container unicorn_new-cable-1 Created 0.2s ✔ Container unicorn_new-web-1 Created 0.2s ✔ Container unicorn_new-worker-1 Created 0.2s Attaching to cable-1, css-1, js-1, postgres-1, redis-1, web-1, worker-1 redis-1 | 1:C 17 Jun 2024 14:00:11.612 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. redis-1 | 1:C 17 Jun 2024 14:00:11.613 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo redis-1 | 1:C 17 Jun 2024 14:00:11.614 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=1, just started redis-1 | 1:C 17 Jun 2024 14:00:11.614 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf redis-1 | 1:M 17 Jun 2024 14:00:11.614 * monotonic clock: POSIX clock_gettime redis-1 | 1:M 17 Jun 2024 14:00:11.624 * Running mode=standalone, port=6379. redis-1 | 1:M 17 Jun 2024 14:00:11.628 * Server initialized redis-1 | 1:M 17 Jun 2024 14:00:11.637 * Ready to accept connections tcp postgres-1 | The files belonging to this database system will be owned by user "postgres". postgres-1 | This user must also own the server process. postgres-1 | postgres-1 | The database cluster will be initialized with locale "en_US.utf8". postgres-1 | The default database encoding has accordingly been set to "UTF8". postgres-1 | The default text search configuration will be set to "english". postgres-1 | postgres-1 | Data page checksums are disabled. postgres-1 | postgres-1 | fixing permissions on existing directory /var/lib/postgresql/data ... ok postgres-1 | creating subdirectories ... ok postgres-1 | selecting dynamic shared memory implementation ... posix postgres-1 | selecting default max_connections ... 100 postgres-1 | selecting default shared_buffers ... 128MB postgres-1 | selecting default time zone ... Etc/UTC postgres-1 | creating configuration files ... ok postgres-1 | running bootstrap script ... ok yarn run v1.22.22 yarn run v1.22.22 $ ./run yarn:build $ ./run yarn:build:css js-1 | ✘ [ERROR] Failed to write to output file: open /app/app/assets/builds/application.js: permission denied js-1 | js-1 | 1 error js-1 | js-1 | app/assets/builds/application.js 143.4kb js-1 | web-1 | cp: cannot create regular file '/app/public/502.html': Permission denied web-1 | cp: cannot create regular file '/app/public/android-chrome-192x192.png': Permission denied web-1 | cp: cannot create regular file '/app/public/android-chrome-512x512.png': Permission denied web-1 | cp: cannot create regular file '/app/public/apple-touch-icon.png': Permission denied web-1 | cp: cannot create directory '/app/public/assets': Permission denied web-1 | cp: cannot create regular file '/app/public/browserconfig.xml': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon-16x16.png': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon-32x32.png': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon.ico': Permission denied web-1 | cp: cannot create regular file '/app/public/maintenance.html': Permission denied web-1 | cp: cannot create regular file '/app/public/mstile-150x150.png': Permission denied web-1 | cp: cannot create regular file '/app/public/robots.txt': Permission denied web-1 | cp: cannot create regular file '/app/public/safari-pinned-tab.svg': Permission denied web-1 | cp: cannot create regular file '/app/public/site.webmanifest': Permission denied js-1 | node:child_process:929 js-1 | throw err; js-1 | ^ js-1 | js-1 | Error: Command failed: /node_modules/@esbuild/linux-x64/bin/esbuild app/javascript/application.js --outdir=app/assets/builds --bundle --minify js-1 | at genericNodeError (node:internal/errors:984:15) js-1 | at wrappedFn (node:internal/errors:538:14) js-1 | at checkExecSyncError (node:child_process:890:11) js-1 | at Object.execFileSync (node:child_process:926:15) js-1 | at Object. (/node_modules/esbuild/bin/esbuild:219:28) js-1 | at Module._compile (node:internal/modules/cjs/loader:1358:14) js-1 | at Module._extensions..js (node:internal/modules/cjs/loader:1416:10) js-1 | at Module.load (node:internal/modules/cjs/loader:1208:32) js-1 | at Module._load (node:internal/modules/cjs/loader:1024:12) js-1 | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12) { js-1 | status: 1, js-1 | signal: null, js-1 | output: [ null, null, null ], js-1 | pid: 26, js-1 | stdout: null, js-1 | stderr: null js-1 | } js-1 | js-1 | Node.js v20.14.0 js-1 | js-1 | Task completed in 0m1.845s error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. js-1 exited with code 1 web-1 exited with code 1 cable-1 | [1] Puma starting in cluster mode... cable-1 | [1] * Puma version: 6.4.2 (ruby 3.3.2-p78) ("The Eagle of Durango") cable-1 | [1] * Min threads: 1 cable-1 | [1] * Max threads: 1 cable-1 | [1] * Environment: production cable-1 | [1] * Master PID: 1 cable-1 | [1] * Workers: 1 cable-1 | [1] * Restarts: (✔) hot (✖) phased cable-1 | [1] * Preloading application postgres-1 | performing post-bootstrap initialization ... ok postgres-1 | syncing data to disk ... ok postgres-1 | postgres-1 | initdb: warning: enabling "trust" authentication for local connections postgres-1 | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. postgres-1 | postgres-1 | Success. You can now start the database server using: postgres-1 | postgres-1 | pg_ctl -D /var/lib/postgresql/data -l logfile start postgres-1 | postgres-1 | waiting for server to start....2024-06-17 14:00:21.385 UTC [47] LOG: starting PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit postgres-1 | 2024-06-17 14:00:21.390 UTC [47] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" postgres-1 | 2024-06-17 14:00:21.423 UTC [50] LOG: database system was shut down at 2024-06-17 14:00:20 UTC postgres-1 | 2024-06-17 14:00:21.460 UTC [47] LOG: database system is ready to accept connections postgres-1 | done postgres-1 | server started postgres-1 | CREATE DATABASE postgres-1 | postgres-1 | postgres-1 | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* postgres-1 | postgres-1 | 2024-06-17 14:00:22.713 UTC [47] LOG: received fast shutdown request postgres-1 | waiting for server to shut down....2024-06-17 14:00:22.728 UTC [47] LOG: aborting any active transactions postgres-1 | 2024-06-17 14:00:22.779 UTC [47] LOG: background worker "logical replication launcher" (PID 53) exited with exit code 1 postgres-1 | 2024-06-17 14:00:22.810 UTC [48] LOG: shutting down postgres-1 | 2024-06-17 14:00:22.817 UTC [48] LOG: checkpoint starting: shutdown immediate postgres-1 | 2024-06-17 14:00:23.003 UTC [48] LOG: checkpoint complete: wrote 922 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.097 s, sync=0.065 s, total=0.192 s; sync files=301, longest=0.014 s, average=0.001 s; distance=4255 kB, estimate=4255 kB; lsn=0/1912048, redo lsn=0/1912048 postgres-1 | 2024-06-17 14:00:23.060 UTC [47] LOG: database system is shut down postgres-1 | done postgres-1 | server stopped postgres-1 | postgres-1 | PostgreSQL init process complete; ready for start up. postgres-1 | postgres-1 | 2024-06-17 14:00:23.315 UTC [1] LOG: starting PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit postgres-1 | 2024-06-17 14:00:23.316 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 postgres-1 | 2024-06-17 14:00:23.318 UTC [1] LOG: listening on IPv6 address "::", port 5432 postgres-1 | 2024-06-17 14:00:23.327 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" postgres-1 | 2024-06-17 14:00:23.347 UTC [63] LOG: database system was shut down at 2024-06-17 14:00:22 UTC postgres-1 | 2024-06-17 14:00:23.403 UTC [1] LOG: database system is ready to accept connections css-1 | css-1 | Rebuilding... css-1 | Error: EACCES: permission denied, open './app/assets/builds/application.css' css-1 | at async open (node:internal/fs/promises:636:25) css-1 | at async Object.writeFile (node:internal/fs/promises:1216:14) css-1 | at async outputFile (/node_modules/tailwindcss/lib/cli/build/utils.js:87:5) css-1 | at async Promise.all (index 0) css-1 | at async build (/node_modules/tailwindcss/lib/cli/build/index.js:49:9) { css-1 | errno: -13, css-1 | code: 'EACCES', css-1 | syscall: 'open', css-1 | path: './app/assets/builds/application.css' css-1 | } css-1 | css-1 | Task completed in 0m13.928s error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. css-1 exited with code 1 worker-1 | 2024-06-17T14:00:38.916Z pid=1 tid=2u9 INFO: Booted Rails 7.1.3.4 application in production environment worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: Running in ruby 3.3.2 (2024-05-30 revision e5a195edf6) +YJIT [x86_64-linux] worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: See LICENSE and the LGPL-3.0 for licensing details. worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org worker-1 | 2024-06-17T14:00:38.938Z pid=1 tid=2u9 INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>10, :pool_name=>"internal", :url=>"redis://redis:6379/1"} cable-1 | [1] * Listening on http://0.0.0.0:28080 worker-1 | 2024-06-17T14:00:39.027Z pid=1 tid=2u9 INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>1, :pool_name=>"default", :url=>"redis://redis:6379/1"} cable-1 | [1] Use Ctrl-C to stop cable-1 | [1] ! WARNING: Detected running cluster mode with 1 worker. cable-1 | [1] ! Running Puma in cluster mode with a single worker is often a misconfiguration. cable-1 | [1] ! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead. cable-1 | [1] ! Set the silence_single_worker_warning option to silence this warning message. cable-1 | [1] - Worker 0 (PID: 10) booted in 0.05s, phase: 0 redis-1 | 1:M 17 Jun 2024 14:05:12.005 * 100 changes in 300 seconds. Saving... redis-1 | 1:M 17 Jun 2024 14:05:12.007 * Background saving started by pid 18 redis-1 | 18:C 17 Jun 2024 14:05:12.020 * DB saved on disk redis-1 | 18:C 17 Jun 2024 14:05:12.021 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB redis-1 | 1:M 17 Jun 2024 14:05:12.109 * Background saving terminated with success postgres-1 | 2024-06-17 14:05:23.406 UTC [61] LOG: checkpoint starting: time postgres-1 | 2024-06-17 14:05:26.161 UTC [61] LOG: checkpoint complete: wrote 30 buffers (0.2%); 0 WAL file(s) added, 0 removed, 0 recycled; write=2.723 s, sync=0.007 s, total=2.755 s; sync files=11, longest=0.004 s, average=0.001 s; distance=132 kB, estimate=132 kB; lsn=0/19330F0, redo lsn=0/19330B8 redis-1 | 1:M 17 Jun 2024 14:10:13.011 * 100 changes in 300 seconds. Saving... redis-1 | 1:M 17 Jun 2024 14:10:13.012 * Background saving started by pid 19 redis-1 | 19:C 17 Jun 2024 14:10:13.023 * DB saved on disk redis-1 | 19:C 17 Jun 2024 14:10:13.024 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB redis-1 | 1:M 17 Jun 2024 14:10:13.112 * Background saving terminated with success

alexanderbahlk avatar Jun 17 '24 14:06 alexanderbahlk

Hi, I am traveling internationally. I will check into this later next week.

On Mon, Jun 17, 2024, 3:19 PM Alexander Bahlk @.***> wrote:

Great Work Nick!

All works fine in development, however, launching on a DigitalOcean Droplet does not work. Here is the output

✔ Network unicorn_new_default Created 0.4s ✔ Volume "unicorn_new_redis" Created 0.0s ✔ Volume "unicorn_new_postgres" Created 0.0s ✔ Container unicorn_new-redis-1 Created 0.8s ✔ Container unicorn_new-js-1 Created 0.8s ✔ Container unicorn_new-css-1 Created 0.8s ✔ Container unicorn_new-postgres-1 Created 0.8s ✔ Container unicorn_new-cable-1 Created 0.2s ✔ Container unicorn_new-web-1 Created 0.2s ✔ Container unicorn_new-worker-1 Created 0.2s Attaching to cable-1, css-1, js-1, postgres-1, redis-1, web-1, worker-1 redis-1 | 1:C 17 Jun 2024 14:00:11.612 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see jemalloc/jemalloc#1328 https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. redis-1 | 1:C 17 Jun 2024 14:00:11.613 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo redis-1 | 1:C 17 Jun 2024 14:00:11.614 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=1, just started redis-1 | 1:C 17 Jun 2024 14:00:11.614 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf redis-1 | 1:M 17 Jun 2024 14:00:11.614 * monotonic clock: POSIX clock_gettime redis-1 | 1:M 17 Jun 2024 14:00:11.624 * Running mode=standalone, port=6379. redis-1 | 1:M 17 Jun 2024 14:00:11.628 * Server initialized redis-1 | 1:M 17 Jun 2024 14:00:11.637 * Ready to accept connections tcp postgres-1 | The files belonging to this database system will be owned by user "postgres". postgres-1 | This user must also own the server process. postgres-1 | postgres-1 | The database cluster will be initialized with locale "en_US.utf8". postgres-1 | The default database encoding has accordingly been set to "UTF8". postgres-1 | The default text search configuration will be set to "english". postgres-1 | postgres-1 | Data page checksums are disabled. postgres-1 | postgres-1 | fixing permissions on existing directory /var/lib/postgresql/data ... ok postgres-1 | creating subdirectories ... ok postgres-1 | selecting dynamic shared memory implementation ... posix postgres-1 | selecting default max_connections ... 100 postgres-1 | selecting default shared_buffers ... 128MB postgres-1 | selecting default time zone ... Etc/UTC postgres-1 | creating configuration files ... ok postgres-1 | running bootstrap script ... ok yarn run v1.22.22 yarn run v1.22.22 $ ./run yarn:build $ ./run yarn:build:css

js-1 | ✘ [ERROR] Failed to write to output file: open /app/app/assets/builds/application.js: permission denied js-1 | js-1 | 1 error js-1 | js-1 | app/assets/builds/application.js 143.4kb js-1 | web-1 | cp: cannot create regular file '/app/public/502.html': Permission denied web-1 | cp: cannot create regular file '/app/public/android-chrome-192x192.png': Permission denied web-1 | cp: cannot create regular file '/app/public/android-chrome-512x512.png': Permission denied web-1 | cp: cannot create regular file '/app/public/apple-touch-icon.png': Permission denied web-1 | cp: cannot create directory '/app/public/assets': Permission denied web-1 | cp: cannot create regular file '/app/public/browserconfig.xml': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon-16x16.png': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon-32x32.png': Permission denied web-1 | cp: cannot create regular file '/app/public/favicon.ico': Permission denied web-1 | cp: cannot create regular file '/app/public/maintenance.html': Permission denied web-1 | cp: cannot create regular file '/app/public/mstile-150x150.png': Permission denied web-1 | cp: cannot create regular file '/app/public/robots.txt': Permission denied web-1 | cp: cannot create regular file '/app/public/safari-pinned-tab.svg': Permission denied web-1 | cp: cannot create regular file '/app/public/site.webmanifest': Permission denied js-1 | node:child_process:929 js-1 | throw err; js-1 | ^ js-1 | js-1 | Error: Command failed: @./linux-x64/bin/esbuild app/javascript/application.js --outdir=app/assets/builds --bundle --minify js-1 | at genericNodeError (node:internal/errors:984:15) js-1 | at wrappedFn (node:internal/errors:538:14) js-1 | at checkExecSyncError (node:child_process:890:11) js-1 | at Object.execFileSync (node:child_process:926:15) js-1 | at Object. (/node_modules/esbuild/bin/esbuild:219:28) js-1 | at Module._compile (node:internal/modules/cjs/loader:1358:14) js-1 | at Module._extensions..js (node:internal/modules/cjs/loader:1416:10) js-1 | at Module.load (node:internal/modules/cjs/loader:1208:32) js-1 | at Module._load (node:internal/modules/cjs/loader:1024:12) js-1 | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12) { js-1 | status: 1, js-1 | signal: null, js-1 | output: [ null, null, null ], js-1 | pid: 26, js-1 | stdout: null, js-1 | stderr: null js-1 | } js-1 | js-1 | Node.js v20.14.0 js-1 | js-1 | Task completed in 0m1.845s error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run https://yarnpkg.com/en/docs/cli/run for documentation about this command. js-1 exited with code 1 web-1 exited with code 1 cable-1 | [1] Puma starting in cluster mode... cable-1 | [1] * Puma version: 6.4.2 (ruby 3.3.2-p78) ("The Eagle of Durango") cable-1 | [1] * Min threads: 1 cable-1 | [1] * Max threads: 1 cable-1 | [1] * Environment: production cable-1 | [1] * Master PID: 1 cable-1 | [1] * Workers: 1 cable-1 | [1] * Restarts: (✔) hot (✖) phased cable-1 | [1] * Preloading application postgres-1 | performing post-bootstrap initialization ... ok postgres-1 | syncing data to disk ... ok postgres-1 | postgres-1 | initdb: warning: enabling "trust" authentication for local connections postgres-1 | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. postgres-1 | postgres-1 | Success. You can now start the database server using: postgres-1 | postgres-1 | pg_ctl -D /var/lib/postgresql/data -l logfile start postgres-1 | postgres-1 | waiting for server to start....2024-06-17 14:00:21.385 UTC [47] LOG: starting PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit postgres-1 | 2024-06-17 14:00:21.390 UTC [47] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" postgres-1 | 2024-06-17 14:00:21.423 UTC [50] LOG: database system was shut down at 2024-06-17 14:00:20 UTC postgres-1 | 2024-06-17 14:00:21.460 UTC [47] LOG: database system is ready to accept connections postgres-1 | done postgres-1 | server started postgres-1 | CREATE DATABASE postgres-1 | postgres-1 | postgres-1 | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/ postgres-1 | postgres-1 | 2024-06-17 14:00:22.713 UTC [47] LOG: received fast shutdown request postgres-1 | waiting for server to shut down....2024-06-17 14:00:22.728 UTC [47] LOG: aborting any active transactions postgres-1 | 2024-06-17 14:00:22.779 UTC [47] LOG: background worker "logical replication launcher" (PID 53) exited with exit code 1 postgres-1 | 2024-06-17 14:00:22.810 UTC [48] LOG: shutting down postgres-1 | 2024-06-17 14:00:22.817 UTC [48] LOG: checkpoint starting: shutdown immediate postgres-1 | 2024-06-17 14:00:23.003 UTC [48] LOG: checkpoint complete: wrote 922 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.097 s, sync=0.065 s, total=0.192 s; sync files=301, longest=0.014 s, average=0.001 s; distance=4255 kB, estimate=4255 kB; lsn=0/1912048, redo lsn=0/1912048 postgres-1 | 2024-06-17 14:00:23.060 UTC [47] LOG: database system is shut down postgres-1 | done postgres-1 | server stopped postgres-1 | postgres-1 | PostgreSQL init process complete; ready for start up. postgres-1 | postgres-1 | 2024-06-17 14:00:23.315 UTC [1] LOG: starting PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit postgres-1 | 2024-06-17 14:00:23.316 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 postgres-1 | 2024-06-17 14:00:23.318 UTC [1] LOG: listening on IPv6 address "::", port 5432 postgres-1 | 2024-06-17 14:00:23.327 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" postgres-1 | 2024-06-17 14:00:23.347 UTC [63] LOG: database system was shut down at 2024-06-17 14:00:22 UTC postgres-1 | 2024-06-17 14:00:23.403 UTC [1] LOG: database system is ready to accept connections

css-1 | css-1 | Rebuilding... css-1 | Error: EACCES: permission denied, open './app/assets/builds/application.css' css-1 | at async open (node:internal/fs/promises:636:25) css-1 | at async Object.writeFile (node:internal/fs/promises:1216:14) css-1 | at async outputFile (/node_modules/tailwindcss/lib/cli/build/utils.js:87:5) css-1 | at async Promise.all (index 0) css-1 | at async build (/node_modules/tailwindcss/lib/cli/build/index.js:49:9) { css-1 | errno: -13, css-1 | code: 'EACCES', css-1 | syscall: 'open', css-1 | path: './app/assets/builds/application.css' css-1 | } css-1 | css-1 | Task completed in 0m13.928s error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run https://yarnpkg.com/en/docs/cli/run for documentation about this command. css-1 exited with code 1 worker-1 | 2024-06-17T14:00:38.916Z pid=1 tid=2u9 INFO: Booted Rails 7.1.3.4 application in production environment worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: Running in ruby 3.3.2 (2024-05-30 revision e5a195edf6) +YJIT [x86_64-linux] worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: See LICENSE and the LGPL-3.0 for licensing details. worker-1 | 2024-06-17T14:00:38.937Z pid=1 tid=2u9 INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org worker-1 | 2024-06-17T14:00:38.938Z pid=1 tid=2u9 INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>10, :pool_name=>"internal", :url=>"redis://redis:6379/1"} cable-1 | [1] * Listening on http://0.0.0.0:28080 worker-1 | 2024-06-17T14:00:39.027Z pid=1 tid=2u9 INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>1, :pool_name=>"default", :url=>"redis://redis:6379/1"} cable-1 | [1] Use Ctrl-C to stop cable-1 | [1] ! WARNING: Detected running cluster mode with 1 worker. cable-1 | [1] ! Running Puma in cluster mode with a single worker is often a misconfiguration. cable-1 | [1] ! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead. cable-1 | [1] ! Set the silence_single_worker_warning option to silence this warning message. cable-1 | [1] - Worker 0 (PID: 10) booted in 0.05s, phase: 0 redis-1 | 1:M 17 Jun 2024 14:05:12.005 * 100 changes in 300 seconds. Saving... redis-1 | 1:M 17 Jun 2024 14:05:12.007 * Background saving started by pid 18 redis-1 | 18:C 17 Jun 2024 14:05:12.020 * DB saved on disk redis-1 | 18:C 17 Jun 2024 14:05:12.021 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB redis-1 | 1:M 17 Jun 2024 14:05:12.109 * Background saving terminated with success postgres-1 | 2024-06-17 14:05:23.406 UTC [61] LOG: checkpoint starting: time postgres-1 | 2024-06-17 14:05:26.161 UTC [61] LOG: checkpoint complete: wrote 30 buffers (0.2%); 0 WAL file(s) added, 0 removed, 0 recycled; write=2.723 s, sync=0.007 s, total=2.755 s; sync files=11, longest=0.004 s, average=0.001 s; distance=132 kB, estimate=132 kB; lsn=0/19330F0, redo lsn=0/19330B8 redis-1 | 1:M 17 Jun 2024 14:10:13.011 * 100 changes in 300 seconds. Saving... redis-1 | 1:M 17 Jun 2024 14:10:13.012 * Background saving started by pid 19 redis-1 | 19:C 17 Jun 2024 14:10:13.023 * DB saved on disk redis-1 | 19:C 17 Jun 2024 14:10:13.024 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB redis-1 | 1:M 17 Jun 2024 14:10:13.112 * Background saving terminated with success

— Reply to this email directly, view it on GitHub https://github.com/nickjj/docker-rails-example/issues/81, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGGRI47AAD2CHI3GJMDJGDZH3WALAVCNFSM6AAAAABJODPL5CVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TONBXG42TKMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

nickjj avatar Jun 17 '24 19:06 nickjj

If you run the id command as the user you're running your Docker commands as, what's the output?

It looks like maybe your user's UID and GID aren't 1000:1000.

nickjj avatar Jul 02 '24 23:07 nickjj

The output is uid=0(root) gid=0(root) groups=0(root)

I updated the .env by your example to

export UID=1000
export GID=1000

The error stays the same

alexanderbahlk avatar Jul 04 '24 01:07 alexanderbahlk

It sounds like you're running things as the root user, but if you do that you'd need to change the UID and GID to 0 and rebuild.

I'd suggest not using root though. Typically the first non-root user created on a Linux system uses 1000:1000.

nickjj avatar Jul 04 '24 10:07 nickjj

Got it. On a fresh DigitalOcean Droplet Ubuntu Ubuntu 22.04 this is the list of users

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:113::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:114::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
landscape:x:111:116::/var/lib/landscape:/usr/sbin/nologin
fwupd-refresh:x:112:117:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
usbmux:x:113:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin

alexanderbahlk avatar Jul 04 '24 11:07 alexanderbahlk

Yep, usually it's expected to create a non-root user to run things as. DO and most other providers won't create this for you because it's up to you. You may want to name it deploy, alex or whatever makes sense for your set up.

nickjj avatar Jul 04 '24 11:07 nickjj

@nickjj Great, the approach is working.

I just have to go back and learn how to get this running on production with SSL.

alexanderbahlk avatar Jul 04 '24 17:07 alexanderbahlk