Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Docker for Rails Developers
About the Pragmatic Bookshelf
Table of Contents
Early Praise for Docker for Rails Developers
Acknowledgements
Introduction
What Is Docker?
Why Use Docker?
Who Should Read This Book?
What’s in This Book?
How to Read This Book
Which Operating Systems Are Supported?
Online Resources
Part 1: Development
Chapter 1: A Brave New World
Installing Docker
Verifying Your Install
Befor e We Begin
Running a Ruby Script Without Ruby Installed
Generating a New Rails App Without Ruby Installed
Quick Recap
Chapter 2: Running a Rails App in a Container
How Do We Run Our Rails App?
Defining Our Fi rst Custom Image
Building Our Image
Running a Rails Server with Our Image
Reaching the App: Publishing Ports
Binding the Rails Serve r to IP Addresses
Quick Recap
Chapter 3: Fine-Tuning Our Rails Image
Naming and Versioning O ur Image
A Default Command
Ignoring Unnecessary Files
The Image Build Cache
Caching Issue 1: Updating Packages
Cachin g Issue 2: Unnecessary Gem Installs
The Finishing Touch
Quick Recap
Chapter 4: Describing Our App Declaratively with Docker Compose
Getting Started with Compose
Launching Our App
Mounting a Local Volume
Starting and Stopping Services
Other Common Tasks
Quick Recap
Chapter 5: Beyond the App: Adding Redis
Starting a Redis Server
Manually Connecting to the Redis Server
How Containers Can Talk to Each Other
Our Rails App Talking to Redis
Starting the Entire App with Docker Compose
Quick Recap
Chapter 6: Adding a Database: Postgres
Starting a Postgres Server
Connecting to Postgres from a Separate Contai ner
Connecting Our Rails App to Postgres
Using the Database in Practice
Decoupling Data from the Container
Quick Recap
Chapter 7: Playing Nice with JavaScript
The JavaScript Front-End Options
Rails JavaScript Front End with Webpacker
Compiling Assets with Webpacker
A Hello World React App
Quick Recap
Chapter 8: Testing in a Dockerized Environment
Setting Up RSpec
Our First Test
Setting Up Rails System Tests
Running Tests That Rely on JavaScript
Debugging
Quick Recap
Chapter 9: Advanced Gem Management
The Downside to Our Existing Approach
Using a Gem Cache Volume
Quick Recap
Chapter 10: Some Minor Irritations
Rails tmp/pids/server.pid Not Cleaned Up
Compose Intermittently Aborts with Ctrl-C
Quick Recap
Closing Thoughts on Docker in Development
Part 2: Toward Production
Chapter 11: The Production Landscape
The “Ops” in DevOps
Container Orchestration
A Tale of Two Orchestrators: Swarm and Kubernetes
IaaS vs. CaaS
Provisioning Your Infrastructure
CaaS Platforms
Serverless for Containers
How to Decide What’s Right for Me?
Quick Recap
Chapter 12: Preparing for Production
Configuring a Production Environment
A Production Image: Precompiling Assets
Sharing Images
Quick Recap
Chapter 13: A Production-Like Playground
Creating Machines
Introducing Docker Swarm
Our First (Single Node) Swarm
Describing Our App to Swarm
Migrating the Database
Deploying Our App on a Swarm
Tasks and Swarm’s Scaling Model
Scaling Up the Service
Quick Recap
Chapter 14: Deploying to the Cloud
Creating a DigitalOcean Cluster
Deploying to Our DigitalOcean Swarm
Visualizing Containers
Scale Up the Web Service
De ploying to AWS Instead of DigitalOcean
Quick Recap
Chapter 15: Closing Thoughts and Next Steps
What Should I Learn About Next?
Appendix 1: Platform Differences
File Ownership and Permissions
Appendix 2: Finding Images to Use
Using Docker Hub
Using the Docker CLI
You May Be Interested In…
← Prev
Back
Next →
← Prev
Back
Next →