<p></p>
<h3 dir="auto">Problem</h3>
<p dir="auto"><strong>Description:</strong><br>
Following the instructions in the <code class="notranslate">DOCKER.md</code> file, I encountered errors when attempting to run <code class="notranslate">bundle exec rails eslint</code> inside the Docker container terminal.</p>
<p dir="auto"><strong>Steps to Reproduce:</strong></p>
<ol dir="auto">
<li>Follow the setup instructions in the <code class="notranslate">DOCKER.md</code> file.</li>
<li>Open a terminal in the Docker container.</li>
<li>Run the command: <code class="notranslate">bundle exec rails eslint</code>.</li>
</ol>
<p dir="auto"><strong>Observed Behavior:</strong><br>
The following error is displayed:</p>
<div class="highlight highlight-source-shell" dir="auto"><pre class="notranslate">$ bundle <span class="pl-c1">exec</span> rails eslint
warning: parser/current is loading parser/ruby30, which recognizes 3.0.7-compliant syntax, but you are running 3.0.2.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
yarn run v1.22.22
$ /app/node_modules/.bin/eslint -c /app/config/eslint.js /app/app/assets/config/manifest.js /app/app/assets/javascripts/application.js /app/app/assets/javascripts/auth_providers.js /app/app/assets/javascripts/diary_entry.js /app/app/assets/javascripts/fixthemap.js /app/app/assets/javascripts/id.js /app/app/assets/javascripts/index/changeset.js /app/app/assets/javascripts/index/contextmenu.js /app/app/assets/javascripts/index/directions/fossgis_osrm.js /app/app/assets/javascripts/index/directions/fossgis_valhalla.js /app/app/assets/javascripts/index/directions/graphhopper.js /app/app/assets/javascripts/index/directions.js /app/app/assets/javascripts/index/export.js /app/app/assets/javascripts/index/history.js /app/app/assets/javascripts/index/layers/data.js /app/app/assets/javascripts/index/layers/notes.js /app/app/assets/javascripts/index/new_note.js /app/app/assets/javascripts/index/note.js /app/app/assets/javascripts/index/query.js /app/app/assets/javascripts/index/search.js /app/app/assets/javascripts/index.js /app/app/assets/javascripts/leaflet.key.js /app/app/assets/javascripts/leaflet.layers.js /app/app/assets/javascripts/leaflet.locate.js /app/app/assets/javascripts/leaflet.map.js /app/app/assets/javascripts/leaflet.note.js /app/app/assets/javascripts/leaflet.query.js /app/app/assets/javascripts/leaflet.share.js /app/app/assets/javascripts/leaflet.sidebar-pane.js /app/app/assets/javascripts/leaflet.sidebar.js /app/app/assets/javascripts/leaflet.zoom.js /app/app/assets/javascripts/login.js /app/app/assets/javascripts/matomo.js /app/app/assets/javascripts/messages.js /app/app/assets/javascripts/oauth.js /app/app/assets/javascripts/richtext.js /app/app/assets/javascripts/router.js /app/app/assets/javascripts/social_share_button.js /app/app/assets/javascripts/user.js /app/app/assets/javascripts/welcome.js /app/config/eslint.js
internal/modules/cjs/loader.js:818
throw err<span class="pl-k">;</span>
^
Error: Cannot find module <span class="pl-s"><span class="pl-pds">'</span>node:util<span class="pl-pds">'</span></span>
Require stack:
- /app/node_modules/eslint/bin/eslint.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
at Function.Module._load (internal/modules/cjs/loader.js:667:27)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:85:18)
at getErrorMessage (/app/node_modules/eslint/bin/eslint.js:67:18)
at process.onFatalError (/app/node_modules/eslint/bin/eslint.js:123:3)
at process.emit (events.js:314:20)
at process._fatalException (internal/process/execution.js:165:25) {
code: <span class="pl-s"><span class="pl-pds">'</span>MODULE_NOT_FOUND<span class="pl-pds">'</span></span>,
requireStack: [ <span class="pl-s"><span class="pl-pds">'</span>/app/node_modules/eslint/bin/eslint.js<span class="pl-pds">'</span></span> ]
}
error Command failed with <span class="pl-c1">exit</span> code 7.
info Visit https://yarnpkg.com/en/docs/cli/run <span class="pl-k">for</span> documentation about this command.
<span class="pl-c"><span class="pl-c">#</span> </span></pre></div>
<p dir="auto"><strong>Expected Behavior:</strong><br>
The <code class="notranslate">bundle exec rails eslint</code> command should run without errors inside the Docker container.</p>
<p dir="auto"><strong>Environment:</strong></p>
<ul dir="auto">
<li>Node.js version: v12.22.9</li>
<li>Container OS: Ubuntu:22.04</li>
</ul>
<h3 dir="auto">Description</h3>
<p dir="auto"><strong>Possible Cause:</strong><br>
After some investigation, I found that the issue might be due to the Node.js version not being specified. Specifying Node.js version 18 and rebuilding the Docker image resolved the issue.</p>
<p dir="auto"><strong>Workaround:</strong></p>
<div class="highlight highlight-source-dockerfile" dir="auto"><pre class="notranslate"><span class="pl-c"><span class="pl-c">#</span> After installing system packages before installing yarn globally</span>
<span class="pl-c"><span class="pl-c">#</span> Install Node.js 18 and npm</span>
<span class="pl-k">RUN</span> curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs</pre></div>
<div class="highlight highlight-source-shell" dir="auto"><pre class="notranslate">$ bundle <span class="pl-c1">exec</span> rails eslint
warning: parser/current is loading parser/ruby30, which recognizes 3.0.7-compliant syntax, but you are running 3.0.2.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
yarn run v1.22.22
$ /app/node_modules/.bin/eslint -c /app/config/eslint.js /app/app/assets/config/manifest.js /app/app/assets/javascripts/application.js /app/app/assets/javascripts/auth_providers.js /app/app/assets/javascripts/diary_entry.js /app/app/assets/javascripts/fixthemap.js /app/app/assets/javascripts/id.js /app/app/assets/javascripts/index/changeset.js /app/app/assets/javascripts/index/contextmenu.js /app/app/assets/javascripts/index/directions/fossgis_osrm.js /app/app/assets/javascripts/index/directions/fossgis_valhalla.js /app/app/assets/javascripts/index/directions/graphhopper.js /app/app/assets/javascripts/index/directions.js /app/app/assets/javascripts/index/export.js /app/app/assets/javascripts/index/history.js /app/app/assets/javascripts/index/layers/data.js /app/app/assets/javascripts/index/layers/notes.js /app/app/assets/javascripts/index/new_note.js /app/app/assets/javascripts/index/note.js /app/app/assets/javascripts/index/query.js /app/app/assets/javascripts/index/search.js /app/app/assets/javascripts/index.js /app/app/assets/javascripts/leaflet.key.js /app/app/assets/javascripts/leaflet.layers.js /app/app/assets/javascripts/leaflet.locate.js /app/app/assets/javascripts/leaflet.map.js /app/app/assets/javascripts/leaflet.note.js /app/app/assets/javascripts/leaflet.query.js /app/app/assets/javascripts/leaflet.share.js /app/app/assets/javascripts/leaflet.sidebar-pane.js /app/app/assets/javascripts/leaflet.sidebar.js /app/app/assets/javascripts/leaflet.zoom.js /app/app/assets/javascripts/login.js /app/app/assets/javascripts/matomo.js /app/app/assets/javascripts/messages.js /app/app/assets/javascripts/oauth.js /app/app/assets/javascripts/richtext.js /app/app/assets/javascripts/router.js /app/app/assets/javascripts/social_share_button.js /app/app/assets/javascripts/user.js /app/app/assets/javascripts/welcome.js /app/config/eslint.js
/app/app/assets/javascripts/index.js
267:9 warning Unexpected alert no-alert
/app/app/assets/javascripts/index/directions.js
117:11 warning Unexpected alert no-alert
337:9 warning Unexpected <span class="pl-s"><span class="pl-pds">'</span>todo<span class="pl-pds">'</span></span> comment: <span class="pl-s"><span class="pl-pds">'</span>TODO: collapse width of sidebar back to...<span class="pl-pds">'</span></span> no-warning-comments
/app/app/assets/javascripts/index/directions/fossgis_osrm.js
4:1 warning Unexpected <span class="pl-k">function</span> <span class="pl-en">declaration</span> <span class="pl-k">in</span> the global scope, wrap <span class="pl-k">in</span> an IIFE <span class="pl-k">for</span> a <span class="pl-k">local</span> variable, assign as global property <span class="pl-k">for</span> a global variable no-implicit-globals
/app/app/assets/javascripts/index/directions/fossgis_valhalla.js
1:1 warning Unexpected <span class="pl-k">function</span> <span class="pl-en">declaration</span> <span class="pl-k">in</span> the global scope, wrap <span class="pl-k">in</span> an IIFE <span class="pl-k">for</span> a <span class="pl-k">local</span> variable, assign as global property <span class="pl-k">for</span> a global variable no-implicit-globals
/app/app/assets/javascripts/index/directions/graphhopper.js
1:1 warning Unexpected <span class="pl-k">function</span> <span class="pl-en">declaration</span> <span class="pl-k">in</span> the global scope, wrap <span class="pl-k">in</span> an IIFE <span class="pl-k">for</span> a <span class="pl-k">local</span> variable, assign as global property <span class="pl-k">for</span> a global variable no-implicit-globals
68:17 warning Unexpected <span class="pl-s"><span class="pl-pds">'</span>todo<span class="pl-pds">'</span></span> comment: <span class="pl-s"><span class="pl-pds">'</span>TODO does graphhopper map instructions...<span class="pl-pds">'</span></span> no-warning-comments
/app/app/assets/javascripts/social_share_button.js
2:1 warning Unexpected <span class="pl-k">function</span> <span class="pl-en">declaration</span> <span class="pl-k">in</span> the global scope, wrap <span class="pl-k">in</span> an IIFE <span class="pl-k">for</span> a <span class="pl-k">local</span> variable, assign as global property <span class="pl-k">for</span> a global variable no-implicit-globals
3:22 error Strings must use doublequote
<span class="pl-c1">.</span>
<span class="pl-c1">.</span>
<span class="pl-c1">.</span>
✖ 38 problems (27 errors, 11 warnings)
25 errors and 0 warnings potentially fixable with the <span class="pl-s"><span class="pl-pds">`</span>--fix<span class="pl-pds">`</span></span> option.
error Command failed with <span class="pl-c1">exit</span> code 1.
info Visit https://yarnpkg.com/en/docs/cli/run <span class="pl-k">for</span> documentation about this command.
$</pre></div>
<h3 dir="auto">Screenshots</h3>
<p dir="auto"><em>No response</em></p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/4989">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLLNRH3GVIO4ZPVXA2DZMOVZJAVCNFSM6AAAAABK4KXCOWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGQYDQNBYGI3TGNY">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLOOBEXNT7BD4D6OP33ZMOVZJA5CNFSM6AAAAABK4KXCOWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHI7DUHWE.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/issues/4989</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/issues/4989",
"url": "https://github.com/openstreetmap/openstreetmap-website/issues/4989",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>