Node.js Docker build在我的机器中工作,但在Gitlab CI中不工作

Node.js Docker build在我的机器中工作,但在Gitlab CI中不工作,node.js,docker,gitlab,Node.js,Docker,Gitlab,我有一个DockerTypeScript节点应用程序,我想从Gitlab CI构建Docker映像 Dockerfile FROM node:11.13.0-alpine WORKDIR /usr/src/app/ COPY . . RUN npm install RUN npm run build CMD ["node", "dist/main.js"] .gitlab ci.yml image:ubuntu:bionic 阶段: -部署 在脚本之前: #操作系统依赖项 -apt获取更

我有一个DockerTypeScript节点应用程序,我想从Gitlab CI构建Docker映像

Dockerfile

FROM node:11.13.0-alpine

WORKDIR /usr/src/app/

COPY . .
RUN npm install
RUN npm run build

CMD ["node", "dist/main.js"]
.gitlab ci.yml

image:ubuntu:bionic
阶段:
-部署
在脚本之前:
#操作系统依赖项
-apt获取更新
-apt get安装-y gnupg2
-apt get安装-y软件属性通用
#安装docker
-apt安装-y docker.io
-服务装卸工启动
#安装卷曲
-apt get安装-y curl
部署:
阶段:部署
脚本:
-docker build-t my_应用程序。
#更多的东西
如果我在本地的Mac操作系统中运行docker build-t我的应用程序,一切都正常。但是在Gitlab CI(Ubuntu)中,它在步骤
RUN npm RUN build
中抛出这些错误:

src/contact/contact.mapper.ts(1,25): error TS2307: Cannot find module './contact'.
src/contact/contact.repository.ts(2,25): error TS2307: Cannot find module './contact'.
src/contact/contact.resolver.ts(3,25): error TS2307: Cannot find module './contact'.
...
Docker版本在Gitlab CI和my local中是相同的。我是否需要其他东西才能在Ubuntu(Gitlab CI runner image)中工作

注意:我知道Docker中的Docker可以在Gitlab CI中使用,但由于某些原因,我需要手动安装Docker

编辑

另外,如果我在本地运行
npm run build
(使用节点v11.13.0,与Dockerfile版本相同),它也可以工作

编辑


我刚刚在Ubuntu机器上运行了docker Build-t my_应用程序。(使用一个流浪的虚拟机),但它不工作。所以,这个错误肯定与操作系统有关。它在Mac OS中工作,但在Ubuntu中不工作。

最后,我发现了错误。文件实际上名为
Contact.ts
,而不是
Contact.ts
。似乎在Mac OS中,与Ubuntu不同,路径不区分大小写

最后,我发现了错误。文件实际上名为
Contact.ts
,而不是
Contact.ts
。似乎在Mac OS中,与Ubuntu不同,路径不区分大小写

看起来像是路径问题,您可以提供您的工作目录文件夹层次结构。src,dist完整路径,以及您运行docker Build的目录的路径是
联系人
文件夹签入?@kichik什么意思?您确定所有源代码都已完全提交到git存储库中吗?你可能忘记签入其中一个文件夹和/或文件了吗?是的,我是。我刚刚在本地克隆了回购协议,
docker build
工作正常。我认为这与操作系统有关。看起来像是路径问题。你能提供你的工作目录文件夹层次结构吗。src,dist完整路径,以及您运行docker Build的目录的路径是
联系人
文件夹签入?@kichik什么意思?您确定所有源代码都已完全提交到git存储库中吗?你可能忘记签入其中一个文件夹和/或文件了吗?是的,我是。我刚刚在本地克隆了回购协议,
docker build
工作正常。我认为这与操作系统有关。