基于 Docker 搭建开发环境

2023-05-16

基于 Node 官方镜像

https://hub.docker.com/_/node

获取镜像

在本地 Terminal 中执行 docker pull node 以获取 node 镜像,可在 docker desktop 中查看。

创建容器

在本地 Terminal 中执行

// 冒号前边表示本地的代码路径和端口号;
// 冒号后边表示容器中的代码路径和端口号;
// 支持 Mapping multiple ports;
// node 为镜像的名字;
// -d 执行run后,返回container id;
// -i 执行run后,直接进入container。

% docker run -dt -v /Users/worldzhy/src:/home/worldzhy/src -p <localhost_port1>:<container_port1> -p <localhost_port2>:<container_port2> node

% docker run -it -v /Users/worldzhy/src:/home/worldzhy/src -p 3000:3000 node

之后,可在 docker desktop 中查看。

连接容器

 打开容器的 Terminal,默认是用 sh,由于 sh 在输入时不具备自动补全功能,最好切换为 bash。

修改容器

查看 Linux version

使用 uname -a 命令,查看版本当前操作系统内核信息
使用 cat /proc/version 命令,查看当前操作系统版本信息
使用 cat /etc/issue 或 cat /etc/redhat-release 命令,查看版本当前操作系统发行版信息

安装 vim

该 node 镜像中未预安装 vim(vim 是 git commit 的依赖项)。

root@3c7ec59a0e14:/# apt update
root@3c7ec59a0e14:/# apt install vim

至此,开发环境已经搭建好了。

修改 $PATH 

// 查看 $PATH
root@a3c8b5743deb:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

// 找到设置 $PATH 的文件
// 参考 https://stackoverflow.com/questions/14637979/how-to-permanently-set-path-on-linux-unix
// 修改 $PATH
root@a3c8b5743deb:/# vim /etc/profile

// 查看 $PATH,未生效
root@a3c8b5743deb:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

// 发布修改的文件
root@a3c8b5743deb:/# source /etc/profile

// 查看 $PATH,生效了
root@a3c8b5743deb:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.pulumi/bin

// 重启 container 后又失效了,经各种测试,猜测:
// 1. 启动时 /etc/profile 为执行;
// 2. /etc/profile 执行后,$PATH 的值又被在别处覆盖了。

// 解决方法,参见:
// https://blog.csdn.net/qq_46092061/article/details/118873206
// https://blog.csdn.net/m0_37845735/article/details/125467763
// /etc/profile 是系统级的,/etc/bash.bashrc 是bash级的,我们应该改用户级的
// 修改 ~/.bashrc 文件,在该文件最后加如下指令:
# pulumi
export PULUMI_HOME="/root/.pulumi/bin"
export PATH="$PULUMI_HOME:$PATH"

// 重启 container,$PATH 生效。

开始开发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 Docker 搭建开发环境 的相关文章

随机推荐

  • windows 10瘦身

    1 迁移子系统ubuntu至D盘 1 首先下载工具 LxRunOffline LxRunOffline 2 打开Windows terminal PS D span class token punctuation span lxrunoff
  • ROSERROR : CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message)

    产生这个的原因是 xff1a 在tx2中我把原来opencv4 1 1版本卸载了 xff0c 重新安装了opencv3 2 重新安装了cv bridge xff0c 在cv bridge中找opencv的默认路径不一样 xff0c 所以要修
  • ROSERROR : undefined reference to cv_bridge::toCvCopy

    解决办法 xff1a 参考原文 重新表述 xff1a 创建一个ROS功能包 xff0c 完成主要功能会使用到opencv 下面是package xml lt buildtool depend gt catkin lt buildtool d
  • ROSNOTE : 自动拍照

    参考原文是 xff1a 链接1 链接2 链接3 usr bin env python coding utf 8 import os import cv2 import time cam 61 cv2 VideoCapture 2 count
  • C++ : sin、cos、tan、arctan的使用

    原文参考 最重要的几条 xff1a C 43 43 中sin cos tan asin acos atan等三角函数的输入是弧度 xff0c 而不是角度注意tan atan等函数不能接受整数 xff0c tan 45 会报错 error C
  • C++ : 类的成员函数修改类中数据成员值

    遇到一个问题是 xff1a 在类中有一个数据成员 xff0c 是public的 xff0c 在类的成员函数中进行修改 xff0c 这个类的成员函数可能是要调用多次 xff0c 想知道是不是每一次调用都有效 写了一个测试函数 xff1a in
  • 临时存储空间

    迭代法 xff1a OpenCV与图像处理学习七 传统图像分割之阈值法 xff08 固定阈值 自适应阈值 大津阈值 xff09 slight smile的博客 CSDN博客 灰度直方图法 xff1a OpenCV实现灰度直方图 xff0c
  • 知网下载pdf

    知网论文 全PDF下载 xff0c 从此告别CAJ阅读器 知乎
  • OPNECV:读取二值图像

    image 61 cv2 imread 34 19 png 34 xff0c 1 在正常的cv imread后加上 1即可 xff0c 表示按照图片原有格式进行读取
  • Ubuntu 20.04桌面很卡的解决方案--亲测有效

    现象描述 xff1a Ubuntu 20 04开机后 xff0c 整个桌面卡顿严重 xff0c 鼠标滚动后桌面没响应 xff0c 几秒钟后屏幕变花 xff0c 图标重叠 xff0c 基本无法操作 打开终端也是两三秒钟后才显示终端界面 xff
  • 多任务学习综述

    An overview of multi task learning xff0c Yu Zhang and Qiang Yang xff08 Sep 2017 xff09 COMPUTER SCIENCE ABSRACT 多任务学习 mul
  • HaneWIN (windows上的NFS服务器)使用说明

    使用说明 HaneWIN官网 xff1a https hanewin net nfs e htm比较好用的版本下载地址 xff1a https download csdn net download fword 85908535使用说明 xf
  • CAN总线简明易懂教程(一)

    先看看工作原理 当 CAN 总线上的一个节点 xff08 站 xff09 发送数据时 xff0c 它以报文的形式广播给网络中所有节点 xff0c 对每个节点来说 xff0c 无论数据是否是发给自己的 xff0c 都对其接收 每组报文开头的1
  • 北斗导航系统、GPS、GLONASS信号频率

    民用方面 xff1a GLONASS xff1a L1 61 1602 43 0 5625 k MHz 和L2 61 1246 43 0 4375 k MHz L1 L2 61 9 7 GPS L1 1575 42 43 10 MHz L2
  • centos下安装Java

    文章目录 1 解压2 配置环境变量 1 解压 首先将压缩包放到 usr local路径下 xff0c 解压缩 span class token builtin class name cd span usr local span class
  • 图像语义理解

    本文转载 from xff1a http blog csdn net haitun425 article details 8802182 1 目标的检测 分类和识别都为图像语义的理解服务 理解是硬道理 xff1b 2 不在于图像理解模型是否
  • 我的嵌入式5年 VS 我被国嵌的视频坑了的日子

    在嵌入式的行业工作四五年了 xff0c 想想从当初的身无分文和什么都不会 xff0c 到现在的还算衣食无忧 xff0c 住行别想 xff0c 技术也有点提升 xff0c 进入了手机行业 xff0c 其中的酸甜苦辣只有自己知道 xff0c 从
  • 我程序人生的启蒙书

    是这本书 xff0c 大一的我接触了c和c 43 43 xff0c 为数学专业的我打开了通往另一个世界的道路 xff0c 做一名优秀的程序员 是这本书 xff0c 大一的我开始废寝忘食的学习 xff0c 自习室里往往就放着这一本数 xff0
  • C++面试题(三)——STL相关各种问题

    C 43 43 面试题 STL相关各种问题 tanglu2004 http blog csdn net worldwindjp STL相关的各种问题 1 xff0c 用过那些容器 最常用的容器就是 xff1a vector list map
  • 基于 Docker 搭建开发环境

    基于 Node 官方镜像 https hub docker com node 获取镜像 在本地 Terminal 中执行 docker pull node 以获取 node 镜像 xff0c 可在 docker desktop 中查看 创建