Updating build with new Docker Compose YAML file

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:

  1. Update my files with git pull origin master
  2. Upgrade docker-compose (the version I had failed on the new YAML)
  3. Remove line breaks in my JWT_SECRET in docker.env (build failed with the breaks)
  4. Run retooldb_upgrade.sh
  5. 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: