Improve docker update instructions (#1619)
This commit is contained in:
		
							parent
							
								
									c4baa9fb6b
								
							
						
					
					
						commit
						e17b5b228d
					
				
					 1 changed files with 18 additions and 25 deletions
				
			
		
							
								
								
									
										41
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -69,28 +69,27 @@ Consult the example configuration file, `.env.production.sample` for the full li
 | 
			
		|||
 | 
			
		||||
The project now includes a `Dockerfile` and a `docker-compose.yml` file (which requires at least docker-compose version `1.10.0`).
 | 
			
		||||
 | 
			
		||||
Review the settings in docker-compose.yml.  Note that it is not default to store the postgresql database and redis databases in a persistent storage location,
 | 
			
		||||
Review the settings in `docker-compose.yml`. Note that it is not default to store the postgresql database and redis databases in a persistent storage location,
 | 
			
		||||
so you may need or want to adjust the settings there.
 | 
			
		||||
 | 
			
		||||
Before running the first time, you need to build the images:
 | 
			
		||||
 | 
			
		||||
    docker-compose build
 | 
			
		||||
 | 
			
		||||
Then, you need to fill in the .env.production file:
 | 
			
		||||
Then, you need to fill in the `.env.production` file:
 | 
			
		||||
 | 
			
		||||
    cp .env.production.sample .env.production
 | 
			
		||||
    vi .env.production
 | 
			
		||||
    nano .env.production
 | 
			
		||||
 | 
			
		||||
Do NOT change the REDIS_* or DB_* settings when running with the default docker configurations.
 | 
			
		||||
Do NOT change the `REDIS_*` or `DB_*` settings when running with the default docker configurations.
 | 
			
		||||
 | 
			
		||||
You will need to fill in, at least:
 | 
			
		||||
    LOCAL_DOMAIN, LOCAL_HTTPS, PAPERCLIP_SECRET, SECRET_KEY_BASE, OTP_SECRET, and the SMTP_*
 | 
			
		||||
    settings.  To generate the PAPERCLIP_SECRET, SECRET_KEY_BASE, and OTP_SECRET, you may use:
 | 
			
		||||
You will need to fill in, at least: `LOCAL_DOMAIN`, `LOCAL_HTTPS`, `PAPERCLIP_SECRET`, `SECRET_KEY_BASE`, `OTP_SECRET`, and the `SMTP_*` settings.  To generate the `PAPERCLIP_SECRET`, `SECRET_KEY_BASE`, and `OTP_SECRET`, you may use:
 | 
			
		||||
 | 
			
		||||
    docker-compose run --rm web rake secret
 | 
			
		||||
 | 
			
		||||
    Do this once for each of those keys, and copy the result into the .env.production file in
 | 
			
		||||
    the appropriate field.
 | 
			
		||||
Do this once for each of those keys, and copy the result into the `.env.production` file in the appropriate field.
 | 
			
		||||
 | 
			
		||||
Then you should run the db:migrate command to create the database, or migrate it from an older release:
 | 
			
		||||
Then you should run the `db:migrate` command to create the database, or migrate it from an older release:
 | 
			
		||||
 | 
			
		||||
    docker-compose run --rm web rails db:migrate
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -106,10 +105,10 @@ If you wish to run this as a daemon process instead of monitoring it on console,
 | 
			
		|||
 | 
			
		||||
    docker-compose up -d
 | 
			
		||||
 | 
			
		||||
Then you may login to your new Mastodon instance by browsing to http(s)://(yourhost):3000/
 | 
			
		||||
Then you may login to your new Mastodon instance by browsing to http://localhost:3000/
 | 
			
		||||
 | 
			
		||||
Following that, make sure that you read the [production guide](docs/Running-Mastodon/Production-guide.md). You are probably going to want to understand how
 | 
			
		||||
to configure NGINX to make your Mastodon instance available to the rest of the world.
 | 
			
		||||
to configure Nginx to make your Mastodon instance available to the rest of the world.
 | 
			
		||||
 | 
			
		||||
The container has two volumes, for the assets and for user uploads, and optionally two more, for the postgresql and redis databases.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -133,17 +132,11 @@ Running any of these tasks via docker-compose would look like this:
 | 
			
		|||
 | 
			
		||||
This approach makes updating to the latest version a real breeze.
 | 
			
		||||
 | 
			
		||||
    git pull
 | 
			
		||||
 | 
			
		||||
To pull down the updates, re-run
 | 
			
		||||
 | 
			
		||||
    docker-compose build
 | 
			
		||||
 | 
			
		||||
And finally,
 | 
			
		||||
 | 
			
		||||
    docker-compose up -d
 | 
			
		||||
 | 
			
		||||
Which will re-create the updated containers, leaving databases and data as is. Depending on what files have been updated, you might need to re-run migrations and asset compilation.
 | 
			
		||||
1. `git pull` to download updates from the repository
 | 
			
		||||
2. `docker-compose build` to compile the Docker image out of the changed source files
 | 
			
		||||
3. (optional) `docker-compose run --rm web rails db:migrate` to perform database migrations. Does nothing if your database is up to date
 | 
			
		||||
4. (optional) `docker-compose run --rm web rails assets:precompile` to compile new JS and CSS assets
 | 
			
		||||
5. `docker-compose up -d` to re-create (restart) containers and pick up the changes
 | 
			
		||||
 | 
			
		||||
## Deployment without Docker
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +152,7 @@ Docker is great for quickly trying out software, but it has its drawbacks too. I
 | 
			
		|||
 | 
			
		||||
[](https://heroku.com/deploy)
 | 
			
		||||
 | 
			
		||||
Mastodon can theoretically run indefinitely on a free [Heroku](https://heroku.com) app. [You can view a guide for deployment on Heroku here.](https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Heroku-guide.md)
 | 
			
		||||
Mastodon can run on [Heroku](https://heroku.com), but it gets expensive and impractical due to how Heroku prices resource usage. [You can view a guide for deployment on Heroku here](https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Heroku-guide.md), but you have been warned.
 | 
			
		||||
 | 
			
		||||
## Development with Vagrant
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue