dbeaver / cloudbeaver

Cloud Database Manager
https://dbeaver.com/
Apache License 2.0
3.39k stars 370 forks source link

How to configure dockerized cloudbeaver #2035

Open AOne-T opened 11 months ago

AOne-T commented 11 months ago

Please, describe your question in details. I'm running Cloudbeaver using docker-compose

  cloudbeaver:
    image: dbeaver/cloudbeaver:23.2.1
    container_name: cloudbeaver
    restart: always
    ports:
      - 8978:8978
    networks:
      - mynet
    volumes:
      - dbeaver-data:/opt/cloudbeaver/workspace

In docs (https://github.com/dbeaver/cloudbeaver/wiki/Server-configuration) I found that I can change parameter sqlTextPreviewMaxLength in cloudbeaver.conf. Should I make a copy of it from a container, attach it as a volume? Or is there another way?

EvgeniaBzzz commented 11 months ago

Hi, @AOne-T If you would like to change default config for all future deployments, then you should copy-paste it and map config folder (you also should copy other config files). If you would like to change existing deploy - just change this parameter in .cloudbeaver.runtime.conf.

bkuhl commented 11 months ago

It would be awesome to see environment variable configuration capabilities baked into the container, generating the config file on startup.

AOne-T commented 11 months ago

I located cloudbeaver.conf in docker volume (/var/lib/docler/volumes/...). Changed the parameter and restarted container. It helped, but I don't think it is the best way

bkuhl commented 11 months ago

That will work locally for a single project. I'm working with a more advanced setup where we use a .env to configure various aspects of the environment depending on where it's being run. Being able to control connection information such as host names, usernames, passwords via environment variables is pretty critical the portability of the application. Any kind of static file won't work.

EvgeniaBzzz commented 11 months ago

Hi guys @AOne-T @bkuhl We will implement this in future releases. Thanks for a feature request!

chardskarth commented 8 months ago

I successfully configured dbeaver to work behind an nginx. Had to tweak /opt/cloudbeaver/conf/cloudbeaver.conf's server.rootURI from / to /dbeaver

Then in my nginx, I had to simply add this:

server {
  listen 80;
  server_name ${GENERIC_HOSTNAME};

  location /dbeaver {
    proxy_pass http://${DBEAVER_DOCKER_HOSTNAME}:${DBEAVER_DOCKER_PORT};
  }
}

Now i'm able to access http://localhost:3000/dbeaver (nginx)

But It was a bit tedious to configure.

  1. Had to copy /opt/cloudbeaver/conf/cloudbeaver.conf, tweak, and then add back as a volume
  2. I had to hard code the value. Specifying environment variable in the .conf file doesn't seem to work. I initially had this challenge with the nginx' docker, good thing an recent release allowed this feature! (adding in /etc/nginx/templates 🤘. See here)

An easier way to configure this please 🙏🙏


PS: Related -> #366