我有用于 Angular 项目的 docker 容器,使用节点 18; Dockerfile:
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm update
RUN npm install
COPY . .
EXPOSE 4200
CMD ["ng", "serve", "--host", "0.0.0.0", "--port", "4200"]
问题是当我运行 sudo
docker-copmose build
时,它很好,但是当我尝试 sudo docker-compose up
时,它有一个错误:
auralab-angular | node:internal/modules/cjs/loader:1080
auralab-angular | throw err;
auralab-angular | ^
auralab-angular |
auralab-angular | Error: Cannot find module '/app/ng'
auralab-angular | at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
auralab-angular | at Module._load (node:internal/modules/cjs/loader:922:27)
auralab-angular | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
auralab-angular | at node:internal/main/run_main_module:23:47 {
auralab-angular | code: 'MODULE_NOT_FOUND',
auralab-angular | requireStack: []
auralab-angular | }
auralab-angular |
auralab-angular | Node.js v18.18.2
我正在使用google-cloud unbutu机器,但我不知道错误原因。 docker-compose.yaml:
angular:
image: auralab-angular:latest
container_name: auralab-angular
build:
context: ./client
dockerfile: Dockerfile
volumes:
- ./client:/app
ports:
- "4200:4200"
command: ["ng", "serve", "--host", "0.0.0.0", "--port", "4200"]
depends_on:
- django
结构是:
project:
|___client:
|_______Dockerfile
|_______other files;
|___docker-compose.yaml
您需要在 Docker 容器内安装 Angular CLI。
FROM node:18
WORKDIR /app
COPY package*.json ./
# Install Angular CLI globally
RUN npm install -g @angular/cli
RUN npm install
COPY . .
EXPOSE 4200
CMD ["ng", "serve", "--host", "0.0.0.0", "--port", "4200"]