gpt4 book ai didi

webstorm - 如何告诉 WebStorm 在 Docker 容器中查找项目?

转载 作者:行者123 更新时间:2023-12-03 16:50:08 27 4
gpt4 key购买 nike

我的当前项目目录如下所示:

.
├── backend
│   ├── Dockerfile # NestJS Dockerfile.
│   ├── docker # Folder that contains docker-compose.yml file.
│   ├── package.json
│   └── src
└── frontend
├── Dockerfile # Angular Dockerfile.
├── package.json
└── src

我的 docker-compose.yml文件看起来像这样:
version: "3.7"
services:
# ########################
# Back-End Container
# ########################
backend: # Node-Express backend that acts as an API.
container_name: nest_backend
build:
context: ../
restart: always
expose:
- 3000
ports:
- "3000:3000"
volumes:
- /home/node/node_modules
- "../:/home/node/"
# ########################
# Front-End Container
# ########################
frontend: # Angular frontend to be served to client.
container_name: angular_frontend
build:
context: ../../frontend/
restart: always
expose:
- 4200 # Angular ng-serve port.
- 49153 # Websocket port for live reloading.
ports:
- "49153:49153"
- "4200:4200"
volumes:
- /home/node/node_modules
- "../../frontend/:/home/node/"
depends_on:
- backend
networks:
default:


我想使用 Docker 并且不会失去使用 WebStorm 作为 IDE 的好处。例如,它告诉我 tslint 包没有安装,我需要运行 npm install安装 node_modules文件夹。然而,我的 node_modules文件夹只存在于容器中。有什么方法可以让 WebStorm 正常工作吗?

我知道有一种叫做路径映射的东西,我已经尝试配置它,但没有任何 react ;它仍然告诉我安装软件包。

这是我到目前为止所做的:

我遵循了教程 here :
  • 去了 编辑配置 在调试按钮旁边的窗口右上角。
  • 点击了 + 签署并选择 Node.js .
  • 点击 ... 旁边节点解释器 .
  • 点击了 + 签名,选择 添加远程... .
  • 已选 Docker Compose 从单选按钮中,单击 旁边的文件夹图标配置文件 ,然后从下拉菜单中选择合适的服务 服务 .
  • 点击 好的 一切,只是运行它。它会运行,给出找不到命令的错误。

  • 当我跑 docker-compose up ,一切顺利。当我尝试添加运行配置时 Run > Edit Configurations...添加 (+) Docker-compose运行,将其指向 docker-compose.yml文件,它也能顺利运行。

    我希望完成的是在 Docker 中使用 IDE 的功能。目前不知道去哪里找 tslint配置,或 node_modules .

    最佳答案

    TLDR;
    技巧是从 /your-path 更新 docker 容器内的路径至 /opt/project .
    详细解决方案
    webstorm 的问题是它们不允许您定义可以选择的路径 node_modules .但是他们有一个默认路径可以从中选择它。当我想为在 docker 中运行的后端节点服务集成远程调试时,我遇到了同样的问题。
    您需要更新您的 docker 文件。假设你使用 Dockerfile 是这样的

    # pull official base image
    FROM node:12.11-buster

    # set working directory
    WORKDIR /app

    COPY ./package.json ./package-lock.json /app

    RUN npm install

    现在这不会检测用于远程调试的 node_modules 或您在 webstorm 中需要的任何其他集成。
    但是如果你将 dockerfile 更新为这样的
    # pull official base image
    FROM node:12.11-buster

    # set working directory
    # This done particularly for enabling debugging in webstorm.
    WORKDIR /opt/project

    COPY ./package.json ./package-lock.json ./.npmrc /opt/project

    RUN npm install

    然后 webstorm 能够按预期检测到所有内容。
    技巧是从 /your-path 更新路径至 /opt/project你的 docker-compose 文件应该是这样的:
    version: "3.7"
    services:
    backend-service:
    build:
    dockerfile: ./Dockerfile.local
    context: ./
    command: nodemon app.js
    volumes:
    - ./:/opt/project
    - /opt/project/node_modules/
    ports:
    - 6060:6060

    您可以在 my blog here 中阅读有关此内容的更多信息

    关于webstorm - 如何告诉 WebStorm 在 Docker 容器中查找项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59625058/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com