聊聊docker容器安装nodejs环境遇到的坑

申明:由于每个公司每个用户的需求不一致,因此本人遇到的问题不代表所有。本人也是初次接触docker,大佬不喜勿喷。

由于公司业务需求,需要将nodejs环境部署在容器中,与之前的ng,mysql,redis等相连,最终从web界面下载数据库中的文件。

一、用wget从官网下载nodejs tar包(前提容器可以连接外网,并且拥有wget工具)

> wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz

二、解压得到同名文件夹

tar -xf node-v12.13.0-linux-x64.tar.xz

三、配置环境变量


vim .bash_profile(我这里配置局部变量,vim /etc/profile 全局变量)

export NODE_HOME=/nodejs路径

export PATH=$PATH:$NODE_HOME/bin?

export NODE_PATH=$NODE_HOME/lib/node_modules

四、保存退出,并且加载配置文件,否则无法生效

[[email protected] ~]# source  /etc/profile

[[email protected] ~]# node -v
v12.13.0        此时说明nodejs安装成功

[[email protected] ~]# npm i   安装依赖包

[[email protected] ~]# npm run start   启动

[[email protected] config]# curl http://localhost:7001
hi, welcome to duyansoft     启动成功

此上为容器中手动部署,下面编写Dockerfile自动生成nodejs镜像,先错误示范:

[[email protected] nodejs]# cat Dockerfile
From centos
RUN yum -y install wget
WORKDIR /root
RUN wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
RUN tar -xf node-v12.13.0-linux-x64.tar.xz
ADD profile /etc/      #根据手动部署替换容器中的profile
WORKDIR /usr/local/duyansoft/service/  #自定义目录
ADD anmiLocalNode.tar.gz .     #代码
RUN mv anmiLocalNode-*  anmiLocalNode #更名
#RUN /root/node-v12.13.0-linux/bin/npm i    #这里是因为一直无法找到npm命令火了,直接绝对路径运行,可见还是不对
WORKDIR  anmiLocalNode/config/
ADD config.default.js .     #修改了一些配置替换掉原始配置
RUN source /etc/profile   #加载全局变量
#WORKDIR /root/node-v12.13.0-linux-x64/bin
RUN npm i
ENTRYPOINT  npm run start &&  tail -f /dev/random

命令无法找到,想想原因,手动部署没问题,为什么一到这样就找不着了。首先猜测是环境变量问题

正确编写Dockerfile

[[email protected] nodejs]# cat Dockerfile
From centos
RUN yum -y install wget
WORKDIR /root
RUN wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
RUN tar -xf node-v12.13.0-linux-x64.tar.xz
ENV NODE_HOME=/root/node-v12.13.0-linux-x64
ENV PATH=$PATH:$NODE_HOME/bin
ENV NODE_PATH=$NODE_HOME/lib/node_modules   #将写在文件中的全局变量使用ENV,就能在容器中实现全局
RUN mkdir -p /usr/local/duyansoft/service/
WORKDIR /usr/local/duyansoft/service/
ADD anmiLocalNode.tar.gz .
RUN mv anmiLocalNode-*  anmiLocalNode
WORKDIR  anmiLocalNode/config/
ADD config.default.js .
RUN npm i
ENTRYPOINT  npm run start &&  tail -f /dev/random

原文地址:https://blog.51cto.com/14443635/2446300

时间: 2024-10-08 23:46:48

聊聊docker容器安装nodejs环境遇到的坑的相关文章

Centos7.4—Docker容器安装配置与基本操作

Docker容器基本操作 目录第一部分 实验环境第二部分 安装配置Docker软件第三部分 Docker镜像操作第四部分 Docker容器操作第五部分 制作镜像第六部分 数据卷管理第七部分 网络通信第八部分 构建nginx镜像 第一部分 实验环境Linux服务器一台系统:CentOS 7.4IP地址:192.168.80.10 注意:需要该服务器能上公网 第二部分 安装配置docker软件一:配置yum源,加入docker源[[email protected] ~]# vi /etc/yum.r

虚拟化技术—docker容器—安装篇

核心概念 1. 镜像 是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器 镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等操作每个容器都是相互隔离的. 3. docker仓库 存放镜像的一个场所仓库分为公开仓库和私有仓库. 最大的公开仓库是Docker hubhub.docker.com国内公开仓库http://dockerpool.com/ 一.安装 centos6 上安装(6.5之前版本需要升级一下 yum

docker——容器安装tomcat

写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7u79-linux-x64.tar.gz 2.apache-tomcat-8.0.36.tar.gz 下载centos镜像:(下载centos这个过程极其漫长) 1 # 启动docker服务 2 service docker start 3 4 # 检索centos镜像 5 docker searc

debian安装node-js环境

推荐第二种安装方式,第一张安装方式会报很多的环境变量出现问题 安装各种g++ c++编译环境等 方式1: 1.下载nodejs安装包 wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz 2.解压 tar zxvf node-v8.9.4.tar.gz 3.编译源码 进入node-v8.9.4文件夹目录 ./configure 配置安装路径,默认安装路径 make test 编译测试 make 编译 make install 装载 4.检查

mac下docker中安装nodejs

一.首先下载docker并安装 https://download.docker.com/mac/stable/Docker.dmg 然后启动docker, 二.获取node最新镜像 输入来着node版本:docker search node 输入以下命令:docker pull node 我们再通过命令确认下node是否拉取成功:docker images 三.运行镜像 接下来我们就要运行镜像:docker run -i -t node /bin/bash 常用参数: -i:容器的标准输入保持打

Linux 安装nodejs环境以及路径配置

linux安装nodejs有2种方式一种简单的,解压即可用:另一种,通过下载source code ,通过编译,make,make install命令来安装. 这里只讲第一种,简单方便.不需要执行mak.make install.步骤如下: 一.确定你使用的linux系统,然后下载响应的压缩包.这里我下载的是node-v6.11.2-linux-x64.tar.xz 二.上传到linux相关路径下,一般是/usr/local/,并执行如下命令 xz -d node-xxxx.tar.xz ---

Docker容器安装

Docker 安装和使用 1.在Ubuntu上安装docker,这里使用的版本是:Ubuntu18.04安装apt-transport-https等软件包支持HTTPS协议源: [email protected]:~$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 添加源的gpg密钥: [email protected]:~$ curl -fsSL https://

Linux 系统中 Docker 容器安装及使用

Docker 简介 产生背景 项目的开发环境和部署环境不一致,部署环境配置难度大.集群技术的发展,集群的相同配置操作难度大. 基本理念 使用Go语言实现的云开源项目,"一次编译,处处运行",只需要一次配置环境,就可以在其他环境一键部署,软件即容器,虚拟化. 虚拟化技术 虚拟机:一种带环境安装的解决方案,模拟整套操作系统,笨重. 容器:将所有运行环境打包成互相隔离的容器,不进行硬件虚拟. 开发/运维(DevOps) 开发自运维.一次开发,处处运维. 官方资料 Docker Docker中

Docker容器安装nginx基本步骤Yum版

首先我们来科普一下nginx: Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日. 其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的We