VS Code Remote Containers Clone Repo doesnt work but works locally

1.7k Views Asked by At

I've set up a devcontainer enviroment for my nodejs/mongo project. It uses a compose file to setup the services.

When I clone my repo locally then choose "Remote Containers: Rebuild and reopen in Container" it runs without any errors.

I then committed my code and tried to to directly pull it as a container: "Remote Container: Clone repository in Container Volume..." it fails on the docker compose step:

enter image description here

[2022-06-13T23:41:39.167Z] Stop (393 ms): Run: docker-compose -f /workspaces/mrp/.devcontainer/docker-compose.yaml config
[2022-06-13T23:41:39.168Z] Error: Command failed: docker-compose -f /workspaces/mrp/.devcontainer/docker-compose.yaml config
[2022-06-13T23:41:39.168Z]     at Fa (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:230:813)
[2022-06-13T23:41:39.169Z]     at processTicksAndRejections (internal/process/task_queues.js:95:5)
[2022-06-13T23:41:39.169Z]     at async RR (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:204:1340)
[2022-06-13T23:41:39.169Z]     at async PR (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:188:2240)
[2022-06-13T23:41:39.169Z]     at async zR (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:245:2177)
[2022-06-13T23:41:39.169Z]     at async nb (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:245:3110)
[2022-06-13T23:41:39.169Z]     at async JR (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:245:13046)
[2022-06-13T23:41:39.169Z]     at async KR (/root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js:245:12802)
[2022-06-13T23:41:39.197Z] Stop (1481 ms): Run in container: node /root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js up --workspace-folder /workspaces/mrp --workspace-mount-consistency cached --id-label vsch.local.repository=https://bitbucket.org/zyphox/mrp --id-label vsch.local.repository.volume=mrp-05e2a4497d6b21c3bd90d4e46c67ab18 --id-label vsch.local.repository.folder=mrp --log-level debug --log-format json --config /workspaces/mrp/.devcontainer/devcontainer.json --override-config /tmp/devcontainer-dcd63d13-415a-4798-8161-efd55b913c6d.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=mrp-05e2a4497d6b21c3bd90d4e46c67ab18,target=/workspaces,external=true --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default off --mount-workspace-git-root true
[2022-06-13T23:41:39.197Z] Exit code 1
[2022-06-13T23:41:39.197Z] Start: Run: docker rm -f b8d9563c543cad59c2e9a3f4e744a2384bb8de5b6386b5a0d593e531d8209dab
[2022-06-13T23:41:39.200Z] Command failed: node /root/.vscode-remote-containers/dist/dev-containers-cli-0.238.2/dist/spec-node/devContainersSpecCLI.js up --workspace-folder /workspaces/mrp --workspace-mount-consistency cached --id-label vsch.local.repository=https://bitbucket.org/zyphox/mrp --id-label vsch.local.repository.volume=mrp-05e2a4497d6b21c3bd90d4e46c67ab18 --id-label vsch.local.repository.folder=mrp --log-level debug --log-format json --config /workspaces/mrp/.devcontainer/devcontainer.json --override-config /tmp/devcontainer-dcd63d13-415a-4798-8161-efd55b913c6d.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=mrp-05e2a4497d6b21c3bd90d4e46c67ab18,target=/workspaces,external=true --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default off --mount-workspace-git-root true
[2022-06-13T23:41:39.201Z] Exit code 1
[2022-06-13T23:41:39.429Z] Stop (11068 ms): Run in container: /bin/sh
[2022-06-13T23:41:39.445Z] Stop (11002 ms): Run in container: /bin/sh
[2022-06-13T23:41:39.445Z] Container server terminated (code: 137, signal: null).
[2022-06-13T23:41:39.846Z] Stop (649 ms): Run: docker rm -f b8d9563c543cad59c2e9a3f4e744a2384bb8de5b6386b5a0d593e531d8209dab
[2022-06-13T23:41:51.954Z] Start: Run: docker version --format {{.Server.APIVersion}}
[2022-06-13T23:41:53.473Z] Stop (1519 ms): Run: docker version --format {{.Server.APIVersion}}
[2022-06-13T23:41:53.473Z] 1.41

This is the exact same compose file as when I locally clone it. If I open docker Desktop and inspect the volume, the correct docker-compose is in the volume.

enter image description here

Here are my devcontainer files:

# devcontainer.json
{
  "name": "Zyphox",
  "dockerComposeFile": "docker-compose.yaml",
  "forwardPorts": [ 80, 27017 ],
  "service": "app",
  "workspaceFolder": "/workspace",
  "shutdownAction": "stopCompose"
}
# docker-compose.yaml
version: "3.8"
services:
  mongodb-setup:
    image: mongo
    restart: on-failure
    user: root
    networks:
      default:
    volumes:
      - ./scripts/mongosetup.sh:/scripts/mongosetup.sh
    entrypoint: [ "sh", "/scripts/mongosetup.sh" ]
    depends_on:
      - mongodb
  mongodb:
    hostname: mongodb
    image: mongo:5.0.9
    environment:
      MONGO_INITDB_DATABASE: zyphox
      MONGO_REPLICA_SET_NAME: rs0
    volumes:
      - mongo-data:/data/db
    restart: always
    entrypoint:
      [
        "/usr/bin/mongod",
        "--bind_ip_all",
        "--replSet",
        "rs0"
      ]
  app:
    build:
      context: ..
      dockerfile: .devcontainer/Dockerfile.dev
    user: root
    volumes:
      - app:/workspaces/mrp
    depends_on:
      mongodb-setup:
        condition: service_completed_successfully
    command: sleep infinity
    network_mode: service:mongodb

volumes:
  mongo-data:
  app:
# Dockerfile.dev
FROM node:16 AS base
WORKDIR /workspace
COPY package*.json .
RUN npm i
COPY . .
ENV NODE_ENV development
0

There are 0 best solutions below