https://github.com/sudo-bot/docker-capistrano
A Docker image for capistrano (laravel and symfony)
https://github.com/sudo-bot/docker-capistrano
capistrano capistrano-laravel capistrano-symfony docker docker-image
Last synced: about 1 month ago
JSON representation
A Docker image for capistrano (laravel and symfony)
- Host: GitHub
- URL: https://github.com/sudo-bot/docker-capistrano
- Owner: sudo-bot
- License: mpl-2.0
- Created: 2022-03-11T07:57:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-02T23:23:51.000Z (2 months ago)
- Last Synced: 2025-03-02T23:27:50.399Z (2 months ago)
- Topics: capistrano, capistrano-laravel, capistrano-symfony, docker, docker-image
- Language: Dockerfile
- Homepage: https://hub.docker.com/r/botsudo/capistrano
- Size: 62.5 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A Docker image to run Capistrano
Go to [Capistrano's GitHub](https://github.com/capistrano/capistrano#readme) or on [Capistrano's website](https://capistranorb.com/)
You can find the image on [Docker Hub](https://hub.docker.com/r/botsudo/capistrano) and on [GitHub](https://github.com/sudo-bot/docker-capistrano#readme)
[](https://hub.docker.com/r/botsudo/capistrano)
## How to use it
### Folder and file structure
```tree
./deploy
├── Capfile
├── config
│ ├── deploy-server1
│ │ ├── production.rb
│ │ └── staging.rb
│ ├── deploy-server2
│ │ ├── production.rb
│ │ └── staging.rb
│ └── deploy.rb
├── launch.sh3 directories, 7 files
```#### `launch.sh`
```sh
#!/bin/sh -euecho "Start SSH agent"
eval $(ssh-agent -s)
ssh-add $SSH_KEY
ssh-add -lecho "Deploying ($BRANCH) ..."
bundle exec cap $ENV_NAME deploy BRANCH="$BRANCH" SSH_KEY="$SSH_KEY"
```### Command line
```sh
# For Capistrano logs (https://capistranorb.com/documentation/getting-started/configuration/) LOGNAME and USERNAME are needed# Example: ./deploy/config/deploy-server1
docker run \
# Mount some files and folders referenced in .rb configs
-v /root/deploy/composer.lock:/deploy/composer.lock:rw \
-v /root/deploy/envs:/deploy/envs:ro \
-v /root/deploy/keys:/deploy/keys:ro \# Mount configs
-v /root/deploy/config/deploy-server1:/deploy/config/deploy:ro \
-v /root/deploy/config/deploy.rb:/deploy/config/deploy.rb:ro \# Mount your Capfile
-v /root/deploy/Capfile:/deploy/Capfile:ro \# Your script to launch the deploy
-v /root/deploy/launch.sh:/deploy/scripts/launch.sh:ro \# Needed ENVs
-e LOGNAME="$USER" \
-e USERNAME="$USER" \
-e BRANCH=$2 \
-e ENV_NAME=$ENV_NAME \
-e SSH_KEY="./deploy/keys/id_rsa_deploy" \
-it --net=host --rm botsudo/capistrano:3.17.1 sh -exu -c './deploy/scripts/launch.sh'
# Also exists as 3.17.1-symfony for deploying symfony
# Also exists as 3.17.1-laravel for deploying laravel
```