Create config stub with mrsk:init
This commit is contained in:
11
README.md
11
README.md
@@ -4,19 +4,18 @@ MRSK ships zero-downtime deploys of Rails apps packed as containers to any host.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Create a configuration file for MRSK in `config/deploy.yml` that looks like this:
|
Add the gem with `bundle add mrsk`, then run `rake mrsk:init`, and then edit the new file in `config/deploy.yml` to use the proper service name, image reference, servers to deploy on, and so on. It could look something like this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
service: my-app
|
service: hey
|
||||||
image: name/my-app
|
image: 37s/hey
|
||||||
servers:
|
servers:
|
||||||
- xxx.xxx.xxx.xxx
|
- xxx.xxx.xxx.xxx
|
||||||
- xxx.xxx.xxx.xxx
|
- xxx.xxx.xxx.xxx
|
||||||
env:
|
env:
|
||||||
DATABASE_URL: mysql2://localhost/my-app_production/
|
DATABASE_URL: mysql2://db1/hey_production/
|
||||||
REDIS_URL: redis://host:6379/1
|
REDIS_URL: redis://redis1:6379/1
|
||||||
registry:
|
registry:
|
||||||
# No server definition needed if using Docker Hub
|
|
||||||
server: registry.digitalocean.com
|
server: registry.digitalocean.com
|
||||||
username: <%= Rails.application.credentials.registry["username"] %>
|
username: <%= Rails.application.credentials.registry["username"] %>
|
||||||
password: <%= Rails.application.credentials.registry["password"] %>
|
password: <%= Rails.application.credentials.registry["password"] %>
|
||||||
|
|||||||
@@ -13,8 +13,11 @@ namespace :mrsk do
|
|||||||
desc "Display information about Traefik and app containers"
|
desc "Display information about Traefik and app containers"
|
||||||
task info: [ "traefik:info", "app:info" ]
|
task info: [ "traefik:info", "app:info" ]
|
||||||
|
|
||||||
desc "Create config stub"
|
desc "Create config stub in config/deploy.yml"
|
||||||
task :init do
|
task :init do
|
||||||
Rails.root.join("config/deploy.yml")
|
require "fileutils"
|
||||||
|
FileUtils.cp_r \
|
||||||
|
Pathname.new(File.expand_path("templates/deploy.yml", __dir__)),
|
||||||
|
Rails.root.join("config/deploy.yml"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
20
lib/tasks/mrsk/templates/deploy.yml
Normal file
20
lib/tasks/mrsk/templates/deploy.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Name of your application will be used for uniquely configuring Traefik and app containers
|
||||||
|
service: my-app
|
||||||
|
|
||||||
|
# Name of the container image
|
||||||
|
image: user/chat
|
||||||
|
|
||||||
|
# All the servers targeted for deploy. You can reference a single server for a command by using SERVERS=xxx.xxx.xxx.xxx
|
||||||
|
servers:
|
||||||
|
- xxx.xxx.xxx.xxx
|
||||||
|
|
||||||
|
# The following envs are made available to the container when started
|
||||||
|
env:
|
||||||
|
# Remember never to put passwords or tokens directly into this file, use encrypted credentials
|
||||||
|
# REDIS_URL: redis://x/y
|
||||||
|
|
||||||
|
registry:
|
||||||
|
# Specify the registry server, if you're not using Docker Hub
|
||||||
|
# server: registry.digitalocean.com / ghcr.io / ...
|
||||||
|
username: <%= Rails.application.credentials.registry["username"] %>
|
||||||
|
password: <%= Rails.application.credentials.registry["password"] %>
|
||||||
Reference in New Issue
Block a user