gpt4 book ai didi

git - NPM 安装在 dockerized env 中失败

转载 作者:太空狗 更新时间:2023-10-29 14:42:39 24 4
gpt4 key购买 nike

我正在尝试使用 docker 建立一些遗留项目。为此,我创建了一个包含 docker 文件的主存储库,并将实际项目添加为 submodule。结果我有:

root
|- data
|- etc
| |-php
| |-etc
|- project
| |- .git
| |- (actual project files)
|- docker-compose.yml
|- .dockerignore

在这样的设置中,project/.git 只是一个包含 gitdir: ../.git/modules/project 的文本文件。

现在,在 docker-compose.yml 中,我映射了以下卷:

- ${APP_PATH}:/var/www/html

在这个容器中,我安装了 npm install(我知道我应该为 node 准备单独的容器,我会在未来做,但现在我需要运行什么我确实有),这以 git

结束
root@06fc2e3fe52a:/var/www/html# npm install
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ssh://git@github.com/bengourley/stack-generator.git
npm ERR!
npm ERR! fatal: Not a git repository: ../.git/modules/project

我已经创建了以下 .dockerignore 文件:

project/.git
project/.gitignore
project/.gitattributes
.git
Dockerfile
.DS_Store
.gitignore
README.md
/tmp/*

是否可以在不将 docker 根目录映射到容器中 www 之上的情况下进行这项工作,以便此 npm install 可以通过?

最佳答案

Is it possible to make this work without mapping a root docker directory above the www in container so that this npm install could go through?

考虑到在 docker build 过程中,所有与 Git 相关的文件夹都被忽略(根据您的 .dockerignore 文件),这可能有点挑战。

I'd really need an answer on how to handle npm install in connection with git subrepositories

这就是npm issue 6700是关于。
它提出了几种方法:

  • a postinstall script to initialize your git submodules. As in this example
  • checking out all the git repositories into parallel directories, e.g.,
src/
src/mod1
src/mod2
src/mod3

and then use npm link to connect the dependencies:

$ cd src/mod1
$ npm link
# this makes a link from the system-wide node_modules to the current dir
$ cd ../mod2
$ npm link mod1
# this makes a link from node_modules/mod1 to ../mod2

That way if you make changes in mod1 or mod2, they can be committed to the appropriate git repository, and you can see the changes right away without having to re-install, re-download etc.

第二种方法很有前途,前提是您可以将预初始化的子模块存储库挂载到单独的路径中,并使用 npm link 引用正确的文件夹,同时仍在 /var/中www/html.

关于git - NPM 安装在 dockerized env 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49067192/

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