Skip to content

ckulka/rhodecode-rccontrol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RhodeCode Control

Dockerfile for RhodeCode Control, ready-to-go for VCS Server, RhodeCode Community Edition and RhodeCode Enterprise Edition.

For more details, see https://github.com/ckulka/rhodecode-rccontrol.

Supported Tags

I follow the same naming scheme for the images as RhodeCode themselves

Usage

The following steps are required to spin up a complete RhodeCode stack

  1. Initialise the database
  2. Spin up the VCS Server and RhodeCode CE/EE
version: "3"

services:
  db:
    image: postgres:alpine
    environment:
      POSTGRES_PASSWORD: cookiemonster

  vcsserver:
    image: ckulka/rhodecode-vcsserver

  rhodecode:
    image: ckulka/rhodecode-ce
    environment:
      RC_DB: postgresql://postgres:cookiemonster@db
    ports:
      - "5000:5000"
    links:
      - db
      - vcsserver

See example/docker-compose.yaml for a complete example including volumes for persistence.

# Spin up the database
docker-compose up -d db

# Run the installer for RhodeCode to initialise the database
docker-compose run --rm rhodecode ./install.sh

# Alternatively, if you haven't defined RC_DB
docker-compose run --rm rhodecode ./install.sh <database>

# Spin up the VCS Server and RhodeCode after the installation
docker-compose up -d

You can now open http://localhost:5000 and sign in using the admin username and the password ilovecookies.

Environment Variables

RC_DB

The RC_DB variable specifies the database RhodeCode connects to. It's only there for convenience over RC_CONFIG and takes precendence over sqlalchemy.db1.url in RC_CONFIG.

For more details on supported databases, see Supported Databases.

This variable is only used in the RhodeCode CE and EE.

RC_CONFIG

The RC_CONFIG variable updates the VCS Server or Rhodecode CE/EE configuration, adding/updating settings that were set or not available during installation.

If RC_CONF is not set, the contents of files/rhodecode.override.ini is used by default.

The example below additionally sets up the email configuration.

  rhodecode:
    image: ckulka/rhodecode-ce
    environment:
      RC_DB: postgresql://postgres:cookiemonster@db
      RC_CONFIG: |
        [DEFAULT]
        email_to = adalovelace@example.com
        error_email_from = rhodecode_error@localhost
        app_email_from = noreply@example.com
        smtp_server = mail.example.com
        smtp_use_ssl = true

        [app:main]
        vcs.server.enable = true
        vcs.server = vcsserver:9900

For more details on the configuration, see Post Installation Tasks.

Persistence

RhodeCode is configured to use /data as the location for the respositories.

Only the VCS Server needs to have access to the repository files, as depicted in the System Overview.

For more details on how to back up the repositories, see Repository Backup.

Migrating existing installations

WIP: While it sounds like it makes sense, I still have to test it.

Migrating an existing installation of RhodeCode to Docker is essentially described in Backup and Restore: Restoration Steps

  1. Spin up a new instance
    • Mount your existing repositories
    • Use RC_CONFIG to import your existing configuration
  2. Remap and rescan your repositories
  3. Perform any necessary Post Restoration Steps
version: "3"

services:
  vcsserver:
    image: ckulka/rhodecode-vcsserver
    volumes:
      - /mnt/repositories:/data

  rhodecode:
    image: ckulka/rhodecode-ce
    environment:
      RC_CONFIG: |
        [app:main]
        vcs.server.enable = true
        vcs.server = vcsserver:9900
        sqlalchemy.db1.url = postgresql://rhodecode:secret@mydbserver/rhodecode
        # ...
    ports:
      - "5000:5000"

About

Dockerfile for RhodeCode Control

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages