尝试在docker中构建有角度的应用程序,并使用Node js在我的本地容器中运行。
我已经在Dockerfile下面使用了构建映像,但是我不确定运行时缺少什么。有人可以指出我吗?
Dockerfile:
FROM node:10.15.3
ENV HOME=/home
WORKDIR $HOME
RUN npm config set strict-ssl false \
&& npm config set proxy http://proxy.xxxxxx.com:8080
COPY package.json .
RUN npm install
使用以下命令成功创建的图像
docker build -t example .
我正在尝试使用以下命令运行该图像,但这无济于事
docker run -p 4201:4200 example
答案 0 :(得分:2)
容器需要运行一个前台进程,然后它不会退出。否则,容器将直接退出。
对于您的情况,您需要在COPY
时将docker build
的nodejs项目保存到容器中,并像CMD
一样在CMD [ "npm", "start" ]
中启动项目。由于Web服务器没有退出,因此您的容器也不会退出。
一篇不错的文章here,供您参考如何对Node.js Web应用进行docker化。
答案 1 :(得分:1)
您的Dockerfile无法运行/服务您的应用程序,为此,您必须:
FROM node:10.15.3
RUN npm config set strict-ssl false \
&& npm config set proxy http://proxy.xxxxxx.com:8080
# get the app
WORKDIR /src
COPY . .
# install packages
RUN npm ci
RUN npm install -g @angular/cli
# start app
CMD ng serve --host 0.0.0.0
希望这会有所帮助。
答案 2 :(得分:0)
只需更新Dockerfile即可实现更多选项的目标,请参见here:
# base image
FROM node:12.2.0
RUN npm config set strict-ssl false \
&& npm config set proxy http://proxy.xxxxxx.com:8080
# install chrome for protractor tests
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -yq google-chrome-stable
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@7.3.9
# add app
COPY . /app
# start app
CMD ng serve --host 0.0.0.0
答案 3 :(得分:0)
还为以下Dockerfile拍摄照片!
FROM node:alpine
# get the app
WORKDIR /src
# install packages
RUN npm ci
RUN npm install -g @angular/cli
COPY package.json .
RUN npm install
COPY . .
# start app
CMD ["ng", "serve", "-o"]