gpt4 book ai didi

node.js - 基于ubuntu创建nodejs容器Docker

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:11 66 4
gpt4 key购买 nike

我使用官方的nodejs 镜像创建了一个运行nodejs 应用程序的docker 容器。

但现在我想在 ubuntu:14.04 上创建相同的 docker 但我自己的基础,但它不起作用

Dockerfile mynode

FROM ubuntu:14.04

RUN apt-get update -y
RUN apt-get upgrade -y

RUN apt-get install nodejs -y
RUN apt-get install nodejs-legacy -y
RUN apt-get install npm -y

RUN npm install -g nodemon

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY ./prj/package.json /usr/src/app/
RUN npm install
ADD ./prj /usr/src/app

EXPOSE 9977

# Run app using nodemon
CMD ["nodemon", "/usr/src/app/app.js"]

如果我将线路从 ubuntu:14.04 更改为 Node,它就可以正常工作。

但是现在如果我使用 docker-compose 来构建和运行容器,它就不起作用了。

node:
restart: always
build: ./mynodeFolder
ports:
- "9977:9977"

我有错误: enter image description here

现在,如果我使用带有 mynode DockerFile 的镜像构建并使用 docker run -it --rm myNewContainer bash然后使用 nodemon 启动我的应用程序,它运行完美!

所以一切都很好地安装并打包在我的 dockerimage 中,那么为什么它在使用 docker-compose 构建时不起作用

当我使用这个 DockerFile 时它现在可以工作了

# Set the base image to Ubuntu
FROM ubuntu:14.04

#FOR DEBUGGING
RUN apt-get update -y
RUN apt-get upgrade -y

RUN apt-get install nodejs -y
RUN apt-get install nodejs-legacy -y
RUN apt-get install npm -y

# Install nodemon
RUN npm install -g nodemon

# Provides cached layer for node_modules
RUN mkdir -p /usr/src/app

# Define working directory
WORKDIR /usr/src/app
ADD ./prj /usr/src/app
RUN npm install

# Expose port
EXPOSE 9977

# Run app using nodemon
CMD ["nodemon", "/usr/src/app/app.js"]

最佳答案

以下是官方 node 镜像的 Dockerfile: https://github.com/nodejs/docker-node/blob/5d433ece4d221fac7e38efbec25ffea2dea56286/5.2/Dockerfile

RUN set -ex && for key in 9554F04D7259F04124DE6B476D5A82AC7E37093B 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 FD3A5288F042B6850C66B31F09FE44734EB7990E 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 DD8F2338BAE7501E3DD5AC78C273792F7D83545D ; do gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done
ENV NPM_CONFIG_LOGLEVEL=info
ENV NODE_VERSION=5.2.0
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --verify SHASUMS256.txt.asc && grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - && tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 && rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc
CMD "node"

如果您转到http://imagelayers.io ,您可以看到该镜像的组合 Dockerfile,包括 buildpack-deps:jessie 基础镜像:

RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl wget && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends bzr git mercurial openssh-client subversion procps && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends autoconf automake bzip2 file g++ gcc imagemagick libbz2-dev libc6-dev libcurl4-openssl-dev libevent-dev libffi-dev libgeoip-dev libglib2.0-dev libjpeg-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmysqlclient-dev libncurses-dev libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev make patch xz-utils zlib1g-dev && rm -rf /var/lib/apt/lists/*
RUN set -ex && for key in 9554F04D7259F04124DE6B476D5A82AC7E37093B 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 FD3A5288F042B6850C66B31F09FE44734EB7990E 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 DD8F2338BAE7501E3DD5AC78C273792F7D83545D ; do gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done
ENV NPM_CONFIG_LOGLEVEL=info
ENV NODE_VERSION=5.2.0
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --verify SHASUMS256.txt.asc && grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - && tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 && rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc
CMD "node"

关于node.js - 基于ubuntu创建nodejs容器Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34318184/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com