Skip to content

Docker image to run Satis (private packagist) with Satisfy User Interface. Crontab and manual build possibility

License

Notifications You must be signed in to change notification settings

ruhmesmeile/docker-satis

 
 

Repository files navigation

Docker Satis

Build Status Docker Stars ImageLayers Size Docker Pulls ImageLayers Layers

A docker image and configuration to run Satis very easily in seconds

Requirements

  • docker
  • docker-compose
  • make

Install

cp .env.dist .env
cp config/parameters.satisfy.yml.dist config/parameters.satisfy.yml
cp config/satis.json.dist config/satis.json
make start

The default config file for satis looks like this:

{
    "name": "company/private-packagist",
    "homepage": "https:\/\/satis.domain.tld",
    "output-dir": "web",
    "output-html": true,
    "repositories": [
    ],
    "require-all": true,
    "require-dependencies": true,
    "require-dev-dependencies": true,
    "include-filename": "include\/all$%hash%.json",
    "minimum-stability": "dev",
    "providers": false
}

Service management

  • Start
make start
  • Stop
make stop
  • Remove
make remove
  • Status
make state

Satis/Satisfy access

Default credentials are : admin / foo

Build frequency

  • By default, building script is executed every minute thanks to the docker-compose configuration
satis:
    image: ypereirareis/docker-satis:5.4
    environment:
        CRONTAB_FREQUENCY: "*/1 * * * *"
  • You can override this value changing the cron configuration: */5 * * * * OR */10 * * * *
  • Or you can disable cron with: CRONTAB_FREQUENCY=-1

SSH key

  • The container needs to know the ssh key you added in your private repo (and optionally your SSH configuration).
satis:
    image: ypereirareis/docker-satis:5.4
    volumes:
        - "~/.ssh/id_rsa:/var/tmp/id"
        - "~/.ssh/config:/var/tmp/sshconf"

You could add the key into your own image but be careful your ssh key will be in the image (DO NOT SHARE THE IMAGE TO THE WORLD):

FROM ypereirareis/docker-satis:5.4
...
ADD SSH_PATH/.ssh/id_rsa:/var/tmp/id
ADD SSH_PATH/.ssh/config:/var/tmp/sshconf
  • The ssh fingerprints of private repos servers need to be added in the known_hosts file inside the container that's why we specify the URL through ENV variable.

You can now add the ssh port of your server yourownserver.com:54322 and it supports rsa and dsa keys

satis:
    image: ypereirareis/docker-satis:5.4
    environment:
        PRIVATE_REPO_DOMAIN_LIST: bitbucket.org gitlab.com github.com yourownserver.com:54322

Composer cache

Cache should be shared with the host to be reused when you restart the container, for better performance.

satis:
    image: ypereirareis/docker-satis:5.4
    volumes:
        - "/var/tmp/composer:/root/.composer"

Outside world