Hello to all the readers!

I have setup multi container applications separate using docker run commands. But docker offers a nice way to setup multi container apps using Docker compose.

Here we define each service in a docker-compose.yml file and then a single command spins up everything for us.

The docker-compose.yml for mysql and app containers.

services:
  app:
    image: node:18-alpine
    command: sh -c "yarn install && yarn run dev"
    ports:
      - 127.0.0.1:3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos

  mysql:
    image: mysql:8.0
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

volumes:
  todo-mysql-data:

Then run

docker compose up -d

docker compose logs -f

This will create volume, runs app and mysql containers and networks. This helps to define the entire application stack.

In order to bring the entire application stack down, we will run

docker compose down

Similar Posts

Error: GraphComment couldn't be load because your settings are invalid. Please visit your admin panel and go to the GraphComment section and enter a valid website URL/ID.