Docker compose files¶
We can create a docker-compose.yml
file that contains all the options we'd normally pass to the docker-cli. With this project, we'll specify that we want docker to create 2 containers - redis and node server. The networking between them will be automatically set up.
davis@davis-arch ~/projects/docker/03_visits master touch docker-compose.yml
version: '3'
services:
redis-server:
image: redis
node-app:
build: .
ports:
- 8080:8080
Change the index.js to connect to redis
const express = require('express');
const redis = require('redis');
const app = express();
const client = redis.createClient({
host: 'redis-server',
port: 6379
});
client.set('visits', 0);
app.get('/', (req, res) => {
client.get('visits', (err, visits) => {
res.send('Visits: ' + visits);
client.set('visits', parseInt(visits) + 1);
});
});
app.listen(8080, () => {
console.log('Listening on port 8080');
});