Issue: Using new YAML file causes my Retool to turn into a fresh install (deletes all user logins and apps)
I have been upgrading my Retool with the docker compose YAML file at the bottom of this message. However I noticed that there have been many updates to it at retool-onpremise/docker-compose.yml at master · tryretool/retool-onpremise · GitHub. I am not able to locate any instructions on how to use a newer YAML file, only how to run upgrade_retool.sh.
What is the proper way for me to do this?
My steps were:
- Update my files with git pull origin master
- Upgrade docker-compose (the version I had failed on the new YAML)
- Remove line breaks in my JWT_SECRET in docker.env (build failed with the breaks)
- Run retooldb_upgrade.sh
- Run update_retool.sh
version: '2'
services:
api:
build:
context: ./
dockerfile: Dockerfile
env_file: ./docker.env
environment:
- SERVICE_TYPE=MAIN_BACKEND
- DB_CONNECTOR_HOST=http://db-connector
- DB_CONNECTOR_PORT=3002
- DB_SSH_CONNECTOR_HOST=http://db-ssh-connector
- DB_SSH_CONNECTOR_PORT=3002
networks:
- frontend-network
- backend-network
- db-connector-network
- db-ssh-connector-network
depends_on:
- postgres
- db-connector
- db-ssh-connector
command: bash -c "./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
links:
- postgres
ports:
- '3000:3000'
volumes:
- ./keys:/root/.ssh
- ssh:/retool_backend/autogen_ssh_keys
jobs-runner:
build:
context: ./
dockerfile: Dockerfile
env_file: ./docker.env
environment:
- SERVICE_TYPE=JOBS_RUNNER
networks:
- backend-network
depends_on:
- postgres
command: bash -c "chmod -R +x ./docker_scripts; sync; ./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
links:
- postgres
db-connector:
build:
context: ./
dockerfile: Dockerfile
command: bash -c "./retool_backend"
env_file: ./docker.env
environment:
- SERVICE_TYPE=DB_CONNECTOR_SERVICE
networks:
- db-connector-network
restart: on-failure
db-ssh-connector:
build:
context: ./
dockerfile: Dockerfile
command: bash -c "./docker_scripts/generate_key_pair.sh; ./retool_backend"
env_file: ./docker.env
environment:
- SERVICE_TYPE=DB_SSH_CONNECTOR_SERVICE
networks:
- db-ssh-connector-network
volumes:
- ssh:/retool_backend/autogen_ssh_keys
- ./keys:/retool_backend/keys
restart: on-failure
# Retool's storage database. See these docs to migrate to an externally hosted database: https://docs.retool.com/docs/configuring-retools-storage-database
postgres:
image: 'postgres:9.6.5'
env_file: docker.env
networks:
- backend-network
- db-connector-network
volumes:
- data:/var/lib/postgresql/data
# Not required, but leave this container to use nginx for handling the frontend & SSL certification
https-portal:
image: tryretool/https-portal:latest
ports:
- '80:80'
- '443:443'
links:
- api
restart: always
env_file: ./docker.env
environment:
STAGE: 'local' # <- Change 'local' to 'production' to use a LetsEncrypt signed SSL cert
networks:
- frontend-network
networks:
frontend-network:
backend-network:
db-connector-network:
db-ssh-connector-network:
volumes:
ssh:
data:
user-data: