@appinteractive
Cucumber lesson: Write the cucumber feature first, then add step
definitions. If you do it the other way round, it will make your
cucumber features less readable.
Creating a separate volume for .nuxt/ where nuxt stores its transpiled
files ensures that both local and docker setup are isolated from each
other. E.g. on Linux I see these annoying owner permission errors,
because the user in the docker environment is called `root` not my user
on my host system `robert`.
This might be interesting for @mattwr18 too
* string-hash
* tiptap
* tiptap-extensions
@appinteractive I see this error in docker environment:
```
webapp_1 | FATAL [
webapp_1 | Error: Cannot resolve "@nuxtjs/style-resources" from "/nitro-web/nuxtjs/style-resources"
webapp_1 | at Resolver.resolvePath (/nitro-web/node_modules/@nuxt/core/dist/core.js:487:11)
webapp_1 | at Resolver.requireModule (/nitro-web/node_modules/@nuxt/core/dist/core.js:498:27)
webapp_1 | at ModuleContainer.addModule (/nitro-web/node_modules/@nuxt/core/dist/core.js:145:36)
webapp_1 | at promise.then (/nitro-web/node_modules/@nuxt/common/dist/common.js:1321:43)
webapp_1 | at process._tickCallback (internal/process/next_tick.js:68:7)
webapp_1 | at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
webapp_1 | at startup (internal/bootstrap/node.js:283:19)
webapp_1 | at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3),
webapp_1 | [Error: Cannot find module '@nuxtjs/style-resources'] {
webapp_1 | at new <anonymous> (/nitro-web/node_modules/esm/esm.js:1:50548)
webapp_1 | at el (/nitro-web/node_modules/esm/esm.js:1:195465)
webapp_1 | at /nitro-web/node_modules/esm/esm.js:1:215841
webapp_1 | at Su (/nitro-web/node_modules/esm/esm.js:1:215921)
webapp_1 | at qa (/nitro-web/node_modules/esm/esm.js:1:187511)
webapp_1 | at Eu (/nitro-web/node_modules/esm/esm.js:1:217149)
webapp_1 | at Module.<anonymous> (/nitro-web/node_modules/esm/esm.js:1:250405)
webapp_1 | at Resolver.o [as esm] (/nitro-web/node_modules/esm/esm.js:1:235191)
webapp_1 | at Resolver.requireModule (/nitro-web/node_modules/@nuxt/core/dist/core.js:508:31)
webapp_1 | at ModuleContainer.addModule (/nitro-web/node_modules/@nuxt/core/dist/core.js:145:36)
webapp_1 | at promise.then (/nitro-web/node_modules/@nuxt/common/dist/common.js:1321:43)
webapp_1 | at process._tickCallback (internal/process/next_tick.js:68:7)
webapp_1 | at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
webapp_1 | at startup (internal/bootstrap/node.js:283:19)
webapp_1 | at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
webapp_1 | code: 'MODULE_NOT_FOUND'
webapp_1 | }
```
@appinteractive could you have a look if sanitization of search queries
work? I created a test and I see "unterminated string" exceptions. This
is not what we want! All user input should be escaped.
In order to create the indices programmatically we need to change the
default password for security concerns. To create the user we need to
start the neo4j database. So I decided to provide a bash script that
let us do it once the container are started.
In production we must change the NEO4J_PASSWORD.
This kind of voume access apparently does not scale on a multi node
setup. Last time I tried, it worked, but last time was on just one node.
So I assume that's why I see the following error:
```
Multi-attach error for volume XY volume is already used by pod XZ
```