为了集成 alinode 今晚通宵,天都亮了还没搞好
发布于 6 年前 作者 axetroy 3865 次浏览 来自 问答

开始用 node 镜像,然后换 alpine, 最后上 centerOS

要么是 tnvm 没有正确设置path,手动设置之后运行shell语法报错。

再改一下语法,运行不报错了。但同时也下载不了了, 毫无反应

不知不觉,折腾了几个小时

但是我在Docker环境外 (Mac) 上安装又可以

有正确的姿势吗?

贴上部分 Dockerfile

FROM centos:6.10

# install bash
# RUN apk upgrade
# RUN apk add --no-cache bash

RUN yum -y install wget

# install alinode
RUN wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
# RUN touch ~/.bashrc
RUN echo 'export TNVM_DIR="/root/.tnvm"' >> ~/.bashrc
RUN echo 'alias tnvm="/root/.tnvm/tnvm.sh"' >> ~/.bashrc
# COPY ./tnvm.sh /root/.tnvm/tnvm.sh
# RUN chmod 0777 /root/.tnvm/tnvm.sh && sed '1i\#!/bin/bash' /root/.tnvm/tnvm.sh && mv /root/.tnvm/tnvm.sh /usr/local/bin/tnvm
RUN cat ~/.bashrc
RUN source ~/.bashrc
RUN . ~/.bashrc
RUN chmod 0777 /root/.tnvm/tnvm.sh
RUN mv /root/.tnvm/tnvm.sh /bin/tnvm
RUN tnvm ls-remote alinode
RUN tnvm install alinode-v4.3.0
RUN tnvm use alinode-v4.3.0
RUN node -v
RUN npm install @alicloud/agenthub -g

RUN npm config set registry https://registry.npm.taobao.org

RUN npm install pm2 -g --production
...
14 回复

alpine 镜像我们有提供的…可以看下 Node.js 性能平台的容器镜像文档

来自酷炫的 CNodeMD

另外,有安装部署使用问题,可以加官方客户钉钉群 11794270 讨论

来自酷炫的 CNodeMD

好多层。试试在一个层构建?

FROM centos:6.10

RUN yum -y install wget

# install alinode
RUN wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash

RUN echo 'export TNVM_DIR="/root/.tnvm"' >> ~/.bashrc

RUN source ~/.bashrc \
    && tnvm install alinode-v4.3.0 \
    && tnvm use alinode-v4.3.0 \
    && npm install @alicloud/agenthub -g \
    && npm config set registry https://registry.npm.taobao.org \
    && npm install pm2 -g --productio

@hyj1991 alinode就是easy-monitor么?

=。= docker 里面装一些嵌入级别的东西还是难搞啊。非运维搞不定系列。我还是感觉原生靠谱好用,毕竟机器不是 8h16g 的高性能怪兽。👾

@chapgaga 当然不是,easy-monitor 是我的个人开源项目

来自酷炫的 CNodeMD

@MiYogurt 就是不用alinode,用原生node么?

感谢楼上各位提供的帮助

暂且可行的Dockerfile

比较蛋疼的是,原先使用的是 alpine, 现改用 centerOS,镜像大小直接增加200M

而且tnvm的脚本只能用 bash 运行 alpine 默认为 sh, 这很尴尬

FROM centos:6.10

ENV ALINODE_VERSION v4.3.0
ENV ALINODE_BIN_DIR /root/.tnvm/versions/alinode/$ALINODE_VERSION/bin

WORKDIR /root/app

RUN mkdir -p /root/app

# package information
COPY ./package.json /root/app/package.json
COPY ./package-lock.json /root/app/package-lock.json

# copy config file
COPY ./app.config.js /root/app/app.config.js
COPY ./ecosystem.config.js /root/app/ecosystem.config.js

# copy dist-build files
COPY ./dist-build /root/app/dist

# copy static files
COPY ./static /root/app/static

# copy alinode
COPY ./alinode.json /root/app/alinode.json

# use bash as default
# SHELL ["/bin/bash", "-c"]

# install alinode
RUN yum -y install wget \
    && wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash \
    && source ~/.bashrc \
    && tnvm install alinode-$ALINODE_VERSION \
    && tnvm use alinode-$ALINODE_VERSION \
    && npm config set registry https://registry.npm.taobao.org \
    && echo NodeJS $(node -v) \
    && npm install @alicloud/agenthub pm2 -g --production \
    && npm install --production \
    # link command to global
    && ln -s $ALINODE_BIN_DIR/* /usr/local/bin/
version: "3"
services:
  nginx_proxy:
    image: nginx:1.15.3-alpine
    restart: always
    working_dir: /home/static
    volumes:
      # - /etc/localtime:/etc/localtime # Linux 下, 保持容器和宿主的时间和时区一致
      - ./nginx.conf:/etc/nginx/nginx.conf # 映射 ginx 配置文件
      - ./logs/nginx:/var/log/nginx # 日志文件
    ports:
      - 3006:80 # 宿主端口:容器端口
    links:
      - web:web
  web:
    image: axetroy/app:latest
    restart: always
    working_dir: /root/app
    environment:
      - NODE_ENV=production
      - HOST=0.0.0.0
      - PORT=80
      - ENABLE_NODE_LOG=YES
      - NODE_LOG_DIR=/root/app/logs
    volumes:
      # - /etc/localtime:/etc/localtime # Linux 下, 保持容器和宿主的时间和时区一致
      - ./logs:/root/app/logs # 日志文件
      - ./temp:/root/app/temp # 缓存文件
    # command: ["pm2-runtime", "start", "ecosystem.config.js"]
    command: ["bash", "-c", "agenthub start alinode.json && pm2-runtime start ecosystem.config.js"]

@axetroy 使用alinode的alpine镜像就不用tnvm了

[CNodeMD]

@dbit-xia 并没有找到 alpine 镜像,如果有的话拜托 @ 我

阿里云容器镜像 要什么有什么

@axetroy 官方文档里有,容器列表下半部分

另附 “Node.js 性能平台客户群”群的钉钉群号: 11794270

[CNodeMD]

@axetroy 官方文档里有,容器列表下半部分

另附 “Node.js 性能平台客户群”群的钉钉群号: 11794270

[CNodeMD]

回到顶部