CNode

为了集成 alinode 今晚通宵,天都亮了还没搞好

问答
Aaxetroy发布于8 年前最后回复8 年前14 回复4742 浏览0 收藏

开始用 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)

H
hyj1991#1·8 年前

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

来自酷炫的 CNodeMD

H
hyj1991#2·8 年前

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

来自酷炫的 CNodeMD

W
waitingsong#3·8 年前

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

L
Lpmvb#4·8 年前
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
M
MiYogurt#6·8 年前

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

H
hyj1991#7·8 年前
引用 chapgaga@hyj1991 alinode就是easy monitor么?

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

来自酷炫的 CNodeMD

A
axetroy#9·8 年前

感谢楼上各位提供的帮助

暂且可行的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"]
A
axetroy#11·8 年前

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

L
Lpmvb#12·8 年前

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

D
dbit-xia#13·8 年前
引用 axetroy@dbit xia 并没有找到 alpine 镜像,如果有的话拜托 @ 我

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

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

[CNodeMD]

D
dbit-xia#14·8 年前
引用 axetroy@dbit xia 并没有找到 alpine 镜像,如果有的话拜托 @ 我

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

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

[CNodeMD]

参与回复
登录后即可参与回复。登录