今天做了一个docker镜像,要求centos7系统,遇到了无数的坑,简单总结如下
1.要把/bin/sh 连接成 /bin/bash,不然source无效,nvm找不到 2.要设置taobao的npm镜像,不然chrome下不了
最终Dockerfile镜像如下
FROM centos:centos7.4.1708
MAINTAINER dickchy "dickchy@163.com"
ENV TZ=Asia/Shanghai
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN mkdir /usr/local/puppeteer
WORKDIR /usr/local/puppeteer
# install nvm
# https://github.com/creationix/nvm#install-script
RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
# nvm environment variables
ENV NVM_DIR /root/.nvm
ENV NODE_VERSION 8.11.3
# install node and npm
RUN source $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use default
# add node and npm to path so the commands are available
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# confirm installation
RUN node -v
RUN npm -v
RUN yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
RUN npm config set registry https://registry.npm.taobao.org
ENV PUPPETEER_DOWNLOAD_HOST https://npm.taobao.org/mirrors
RUN npm i puppeteer
RUN npm install md5
RUN npm install express
RUN npm install log4js
RUN npm install request
RUN npm install async-lock
RUN yum -y install fontconfig
RUN mkdir -p /usr/share/fonts/truetype/WindowsFonts
ADD ./app/fonts /usr/share/fonts/truetype/WindowsFonts
RUN fc-cache -f -v
ADD ./app/main.js ./
RUN mkdir -p /usr/local/puppeteer/cache
RUN mkdir -p /usr/local/puppeteer/chrome
RUN mkdir -p /usr/local/puppeteer/logs
CMD ["/root/.nvm/versions/node/v8.11.3/bin/node", "/usr/local/puppeteer/main.js"]