尝试创建一个包含Python3和Nodev4.4.7的docker镜像,以便我可以将其用作我的项目的容器,该项目同时需要Python和该版本的Node.
# Pull base image.
FROM python:3-onbuild
CMD [ "python", "./hello.py" ]
# Install Node.js
RUN \
cd /tmp && \
wget http://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz && \
tar xvzf node-v4.4.7.tar.gz && \
rm -f node-v4.4.7.tar.gz && \
cd node-v* && \
./configure && \
CXX="g++ -Wno-unused-local-typedefs" make && \
CXX="g++ -Wno-unused-local-typedefs" make install && \
cd /tmp && \
rm -rf /tmp/node-v* && \
npm install -g npm && \
print '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc
# Define working directory.
WORKDIR /data
# Define default command.
CMD ["bash"]当我第一次尝试它的时候,抱怨没有运行python脚本,所以添加了一个基本的python文件:hello.py,它只有以下内容:
print "Hello, Python!"然后它会抱怨没有requirements.txt文件,因此添加了一个空的requirements.txt
现在,在使用node-v4.4.0/benchmark/arrays/zero-int.js File "./configure", line 446 ''' ^ SyntaxError: Missing parentheses in call to 'print' The command '/bin/sh -c cd /tmp && wget http://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz && tar xvzf node-v4.4.7.tar.gz && rm -f node-v4.4.7.tar.gz && cd node-v* && ./configure && CXX="g++ -Wno-unused-local-typedefs" make && CXX="g++ -Wno-unused-local-typedefs" make install && cd /tmp && rm -rf /tmp/node-v* && npm install -g npm && print '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc' returned a non-zero code: 1安装节点的过程中,当我运行docker build -t isaacweathersnet/sampledockerimage .时,会出现混乱
发布于 2016-11-30 04:20:04
在拥有Python和Node的Github上找到了解决方案。在Python 3+上不走运,但在2.7 https://github.com/nsdont/python-node/blob/master/Dockerfile上工作得很好
FROM python:2.7
RUN \
cd /tmp && \
wget http://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz && \
tar xvzf node-v4.4.7.tar.gz && \
rm -f node-v4.4.7.tar.gz && \
cd node-v* && \
./configure && \
CXX="g++ -Wno-unused-local-typedefs" make && \
CXX="g++ -Wno-unused-local-typedefs" make install && \
cd /tmp && \
rm -rf /tmp/node-v* && \
npm install -g npm && \
echo -e '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc
# Define working directory.
WORKDIR /data
# Define default command.
CMD ["bash"]发布于 2018-11-24 20:11:18
有nodejs-python和python-nodejs (构建在nodejy-python之上)。这是值得一看的。
python-nodejs提供Node 10.x、npm 6.x、yarn stable、Python latest、pip latest和pipenv latest。使用的版本应该根据您的版本需求进行调整。使用Dockerfile作为基础并调整RUN部分
RUN \
echo "deb https://deb.nodesource.com/node_10.x stretch main" > /etc/apt/sources.list.d/nodesource.list && \
wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
wget -qO- https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
apt-get update && \
apt-get install -yqq nodejs yarn && \
pip install -U pip && pip install pipenv && \
npm i -g npm@^6 && \
rm -rf /var/lib/apt/lists/*添加到您需要的Node版本。可以删除yarn (nmp的依赖项管理替代方案)部分(如果您需要使用yarn)。
https://stackoverflow.com/questions/40872544
复制相似问题