构建后Vscode未检测到git文件夹- Docker

nr9pn0ug  于 2023-03-11  发布在  Git
关注(0)|答案(2)|浏览(254)

我是Docker的新手,我创建了一个Docker-compose文件来从一个文件设置我的nodejs开发环境。我的想法是给予开发人员一个Docker-compose文件,他们可以从那里简单地启动容器并开始开发。
当我使用docker-compose up时,应用程序已经成功构建并运行,但问题是当我在Vscode的开发容器中打开它时,它无法识别为git repo。

.停靠忽略

node_modules
npm-debug.log

停靠文件

FROM node:16.15.0 as develop-stage
WORKDIR /code
COPY package.json .
# Using package-lock file to fix the version of installed modules.
COPY package-lock.json .
RUN npm install
COPY . .
EXPOSE 9608
CMD ['nodemon' 'index.js']

对接合成

version: '3.8'
services:
  my-service:
    container_name: my-service
    build: 
      context: 'https://username:token@bitbucket.org/abc/test-repo'
      dockerfile: Dockerfile
    volumes:
      - my-data:/code
    command: nodemon index.js
    networks:
      - my-network
    expose:
      - 9608
    ports:
      - 9608:9608
    restart: on-failure
volumes:
  my-data:
    external: false
networks:
  my-network:
    external: false
juud5qan

juud5qan1#

Docker-compose上下文定义了一个build context,它可以使用Git存储库URL
当URL参数指向Git存储库的位置时,存储库将充当构建上下文。
构建器递归地拉取仓库及其子模块,执行一个浅克隆,因此只拉取最近的提交,而不是整个历史。

首先将资料档案库提取到主机上的临时目录中。成功后,该目录将作为上下文发送到守护进程

换句话说,你的上下文代表了远程Git仓库的内容,它并不代表一个实际的(克隆的)Git仓库。

  • 上下文是发送到Docker守护进程以构建映像的一组文件。
  • 上下文的来源可以是本地目录或git URL。

如果你必须在你的映像中得到一个存储库,你的Dockerfile/docker-compose将 * 克隆 * Git存储库,而不使用上下文。

gajydyqb

gajydyqb2#

你的.git文件夹不在要复制到Docker映像的根目录中。根据你的文件夹结构设置,它可能是一个或两个以上的文件夹。你可以通过cd .. && ls -a找到它,直到找到为止。然后使用显式COPY ../.git .将它添加到Docker映像中。

相关问题