我尝试使用node:16.15.0-alpine
在Vue中为我的前端应用程序构建本地Docker映像,但失败了,因为我的package.json
文件中有一个私有存储库。
然而,当我使用node:16.15.0
构建图像时,一切都很好,尽管我的Docker图像大小拍摄到1.8GB
。
下面是我的dockerfile
FROM node:16.15.0-alpine as develop-stage
# make the 'app' folder the current working directory
WORKDIR /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./
# install project dependencies
RUN npm install
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .
EXPOSE 80
ENTRYPOINT [ "npm", "run", "dev" ]
对接合成
version: '3.8'
services:
frontend:
container_name: frontend-test
image: frontend-test:latest
build:
context:.
dockerfile: ./dockerfile.dev
target: 'develop-stage'
networks:
- test-app-network
environment:
- CHOKIDAR_USEPOLLING: true
ports:
- 8080:8080
volumes:
test-data:
external: false
networks:
test-app-network:
external: false
我的package.json文件
...
depedencies: {
private-repo: 'git+https://username:apppassword@bitbucket.org/myproject/myrepo.git'
}
...
1条答案
按热度按时间92dk7w1h1#
不同的是
node:16.15.0
镜像安装了git
,而node:16.15.0-alpine
镜像没有安装,因此git克隆私有仓库会因为缺少git
命令而失败。这可以通过在
Dockerfile
中手动安装git
包来解决:这会将
git
包添加到映像中,从而增加映像的大小(大约13 MiB)。如果映像稍后需要git,这可能是有意义的。如果git只在最初的npm install
中需要,可以通过将apk add
,npm install
和apk del
合并到一个RUN
节中来避免这种开销: