Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Compose Error on MacOS After Cloning Repo #80

Open
mimalef70 opened this issue Jun 17, 2023 · 10 comments
Open

Docker Compose Error on MacOS After Cloning Repo #80

mimalef70 opened this issue Jun 17, 2023 · 10 comments

Comments

@mimalef70
Copy link

Hello,

I'm encountering an issue while setting up the project on my MacOS system. Here are the steps I followed:

  1. I cloned the repository to my local machine.
  2. I copied the example environment file using the command: cp .dev/databerry/app.env.example .dev/databerry/app.env
  3. I attempted to start the project using Docker Compose with the command: pnpm docker:compose up

At this point, I received an error. Unfortunately, I'm unable to proceed further due to this issue.
Screenshot 2023-06-17 at 8 19 33 PM

@gmpetrov
Copy link
Owner

Can you try this pnpm/pnpm#5803 (comment)

@heresandyboy
Copy link

heresandyboy commented Jun 23, 2023

I am having the same issue, running with Docker on Windows, same error. I have been trying to work around it but am not having any luck.

I tried adding the following to a .dockerignore as one idea but no joy.

node_modules
.pnpm-store
pnpm-lock.yaml

I had a look at the pnpm issue above but that looks to be a workaround for macos?
Has anyone succesfully run Databerry in docker with Windows?

I just pulled latest after seeing a check-in for fix local install, unfortunately I still get the same error:

 EACCES  EACCES: permission denied, rename '/home/node/node_modules/.pnpm/object.values@1.1.6/node_modules/_tmp_39_d1d0752f797e93ce22937c758facae1f' -> '/home/node/node_modules/.pnpm/object.values@1.1.6/node_modules/object.values'

pnpm: EACCES: permission denied, rename '/home/node/node_modules/.pnpm/object.values@1.1.6/node_modules/_tmp_39_d1d0752f797e93ce22937c758facae1f' -> '/home/node/node_modules/.pnpm/object.values@1.1.6/node_modules/object.values'

> databerry-v2@0.1.0 prisma:migrate:dev /home/node
> dotenv -e .env.local -- prisma migrate dev

sh: 1: dotenv: not found
 ELIFECYCLE  Command failed.

> databerry-v2@0.1.0 dev:all /home/node
> npm-run-all --parallel dev worker:datasource-loader

sh: 1: npm-run-all: not found
 ELIFECYCLE  Command failed.
###### READY TO ROCK !

@mimalef70
Copy link
Author

ty gmpetrov for you answer, but After I struggled a lot with it and didn't get the result, I removed the databerry itself from Docker and the rest of the services remained in Docker.

@gmpetrov
Copy link
Owner

@heresandyboy @mimalef70 I just deployed a fix. Can you sync the repo and run

npm run docker:compose up --build

@mimalef70
Copy link
Author

Thank you for your attention and follow up. I will check it gmpetrov

@heresandyboy
Copy link

@gmpetrov Unfortunately after pulling latest this morning and running npm run docker:compose up --build I am still getting errors:

Error:

databerry-base-api-1  | ###### INITIALIZING PROJECT
databerry-base-api-1  | Lockfile is up to date, resolution step is skipped
databerry-base-api-1  | Progress: resolved 1, reused 0, downloaded 0, added 0
databerry-base-api-1  | Packages: +899
databerry-base-api-1  | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
databerry-base-api-1  | 
databerry-base-api-1  |    ╭─────────────────────────────────────────────────────────────────╮
databerry-base-api-1  |    │                                                                 │
databerry-base-api-1  |    │                Update available! 7.33.2 → 8.6.4.                │
databerry-base-api-1  |    │   Changelog: https://github.com/pnpm/pnpm/releases/tag/v8.6.4   │
databerry-base-api-1  |    │                Run "pnpm add -g pnpm" to update.                │
databerry-base-api-1  |    │                                                                 │
databerry-base-api-1  |    │     Follow @pnpmjs for updates: https://twitter.com/pnpmjs      │
databerry-base-api-1  |    │                                                                 │
databerry-base-api-1  |    ╰─────────────────────────────────────────────────────────────────╯
databerry-base-api-1  | 
databerry-base-api-1  | Progress: resolved 899, reused 0, downloaded 0, added 0
databerry-base-api-1  |  EACCES  EACCES: permission denied, mkdir '/home/node/node_modules/.pnpm'
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-pgadmin-1   | [2023-06-26 09:23:13 +0000] [1] [INFO] Starting gunicorn 20.1.0
databerry-pgadmin-1   | [2023-06-26 09:23:13 +0000] [1] [INFO] Listening at: http://0.0.0.0:5050 (1)
databerry-pgadmin-1   | [2023-06-26 09:23:13 +0000] [1] [INFO] Using worker: gthread
databerry-pgadmin-1   | [2023-06-26 09:23:13 +0000] [81] [INFO] Booting worker with pid: 81
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 prisma:migrate:dev /home/node
databerry-base-api-1  | > dotenv -e .env.local -- prisma migrate dev
databerry-base-api-1  | 
databerry-base-api-1  | sh: 1: dotenv: not found
databerry-base-api-1  |  ELIFECYCLE  Command failed.
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 dev:all /home/node
databerry-base-api-1  | > npm-run-all --parallel dev worker:datasource-loader
databerry-base-api-1  | 
databerry-base-api-1  | sh: 1: npm-run-all: not found
databerry-base-api-1  |  ELIFECYCLE  Command failed.
databerry-base-api-1  | ###### READY TO ROCK !

@mimalef70
Copy link
Author

The problem seems to persist.
Interestingly, my colleague's Linux device, which had no problems before, now has a problem.

@heresandyboy
Copy link

I noticed I had some docker volumes left over from some previous experimentation.

I removed any volumes and killed/removed any containers and images to start fresh

docker volume ls to see what volumes were still around
docker volume rm databerry_node_modules and any other node_modules ones I had left over.

With that done, the most recent run results in logs that appear to suggest it is now up and running, but I cannot access anything on localhost:3000 or 127.0.0.1:3000

databerry-base-api-1  | Done in 5m 56.9s
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 prisma:migrate:dev /home/node
databerry-base-api-1  | > dotenv -e .env.local -- prisma migrate dev
databerry-base-api-1  | 
databerry-base-api-1  | Prisma schema loaded from prisma/schema.prisma
databerry-base-api-1  | Datasource "db": PostgreSQL database "databerry", schema "public" at "pgdb:5432"
databerry-base-api-1  | 
databerry-base-api-1  | Already in sync, no schema change or pending migration was found.
databerry-base-api-1  | 
✔ Generated Prisma Client (4.12.0 | library) to ./node_modules/.pnpm/@prisma+cli
databerry-base-api-1  | ent@4.12.0_prisma@4.12.0/node_modules/@prisma/client in 389ms
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 dev:all /home/node
databerry-base-api-1  | > npm-run-all --parallel dev worker:datasource-loader
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 dev /home/node
databerry-base-api-1  | > next dev
databerry-base-api-1  | 
databerry-base-api-1  | 
databerry-base-api-1  | > databerry-v2@0.1.0 worker:datasource-loader /home/node
databerry-base-api-1  | > dotenv -e .env.local -- npx tsx --watch workers/datasource-loader.ts
databerry-base-api-1  | 
databerry-base-api-1  | ready - started server on 0.0.0.0:3000, url: http://localhost:3000
databerry-base-api-1  | info  - Loaded env from /home/node/.env.local
databerry-base-api-1  | warn  - You have enabled experimental feature (appDir) in next.config.js.
databerry-base-api-1  | warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
databerry-base-api-1  | 
databerry-base-api-1  | info  - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback
databerry-base-api-1  | npm WARN exec The following package was not found and will be installed: tsx@3.12.7
databerry-base-api-1  | (node:746) ExperimentalWarning: Watch mode is an experimental feature and might change at any time
databerry-base-api-1  | (Use `node --trace-warnings ...` to show where the warning was created)
databerry-base-api-1  | event - compiled client and server successfully in 18.2s (880 modules)
databerry-base-api-1  | wait  - compiling...
databerry-base-api-1  | event - compiled successfully in 2.1s (467 modules)
databerry-base-api-1  | wait  - compiling...
databerry-base-api-1  | event - compiled client and server successfully in 1671 ms (880 modules)
databerry-base-api-1  | BullMQ: DEPRECATION WARNING! Your redis options maxRetriesPerRequest must be null. On the next versions having this settings will throw an exception
databerry-base-api-1  | BullMQ: DEPRECATION WARNING! Your redis options maxRetriesPerRequest must be null. On the next versions having this settings will throw an exception
databerry-base-api-1  | (node:753) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.
databerry-base-api-1  | 
databerry-base-api-1  | Please migrate your code to use AWS SDK for JavaScript (v3).
databerry-base-api-1  | For more information, check the migration guide at https://a.co/7PzMCcy
databerry-base-api-1  | (Use `node --trace-warnings ...` to show where the warning was created)

@heresandyboy
Copy link

heresandyboy commented Jun 26, 2023

I have managed to get it working finally.

I had to modify the docker-compose.app.yml to remove 127.0.0.1: from the port mapping.
Now I can access http://127.0.0.1:3000/ locally - but still no access on http://localhost:3000

here is my working docker-compose.app.yml

version: "3"

services:
  base-api:
    env_file:
      - app.env
    build:
      context: ..
      dockerfile: Dockerfile
      args:
        DBUSER: ${DBUSER}
        DBPASS: ${DBPASS}
        DBNAME: ${DBNAME}
    volumes:
      - ../..:/home/node
      - node_modules:/home/node/node_modules
    command: /bin/sh "/home/node/.dev/init.sh"
    ports:
      - "${PORT}:3000"
volumes:
  node_modules:
  # pnpm-store:

EDIT: I have been using rancher desktop as my docker daemon, after updating it to latest, the problem I had accessing localhost addresses has fixed itself. So with the docker-compose.app.yml file above, I am now able to run Databerry locally properly.

@gmpetrov
Copy link
Owner

Thx for sharing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants