Criem uma pasta no projeto chamado ".devcontainer", e crie o conteúdo solicitado abaixo.
Crie um arquivo devcontainer.json e cole o conteúdo abaixo
{
    "name": "Api Full Rest",
    "dockerComposeFile": ["./docker-compose.yml"],
    "service": "api-full-rest",
    "shutdownAction": "none",
    "extensions": [
        "eamodio.gitlens",
        "kisstkondoros.vscode-codemetrics",
        "mutantdino.resourcemonitor"
    ],
    // Open the sub-folder with the source code
    "workspaceFolder": "/workspace/api-full-rest"
  }Crie um segundo arquivo docker-compose.yml e coloque o conteúdo abaixo:
version: '3.1'
services:
  api-full-rest:
    image: mcr.microsoft.com/vscode/devcontainers/typescript-node:0-10
    container_name: backend
    volumes:
      - ../../api-full-rest:/workspace/api-full-rest:cached
    command: /bin/sh -c "while sleep 1000; do :; done"
    ports:
      - "3002:3002"
    expose:
      - "3002"
    networks:
      - backend
    depends_on:
      - db
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    container_name: backend-db
    environment:
      - MYSQL_ROOT_PASSWORD=root123
      - MYSQL_DATABASE=agenda-petshop
      - MYSQL_USER=app
      - MYSQL_PASSWORD=123456
    volumes:
      - ../../api-full-rest/db:/workspace/var/lib/mysql:cached
    ports:
      - "3307:3306"
    expose:
      - "3307"
    networks:
      - backend
networks:
  backend:
    driver: bridgeUm exemplo de como ficou meu acesso ao banco:
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'backend-db',
    user: 'app',
    password: '123456',
    database: 'agenda-petshop'
});
module.exports = connection;Para subir o ambiente, utilize a opção "Open a Remote Window". Se ficou confuso faça uma busca no Google que existem diversos fóruns explicando.
 
            