老根的博客

日子就是问题叠着问题


  • 首页

  • 分类11

  • 归档21

  • 标签27

FFMPEG - 基础命令

发表于 2019-11-24 | 分类于 Videos , ffmpeg
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

查看 mac 上的设备列表

1
ffmpeg -f avfoundation -list_devices true -i ""
阅读全文 »

Github Actions - 使用 SSH 远程连接服务器部署

发表于 2019-11-18 | 分类于 CI/CD , Github Actions
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

文档中并没有关于 SSH 方面的东西,虽然不属于 Github Actions 范畴,但经常用到,并且确实要花费一些时间去检索用法,甚至调试很久。

此文是为了记录经过验证的示例代码,方便日后或他人参考和使用。

阅读全文 »

Github Actions - 发布 npm 包

发表于 2019-11-18 | 分类于 CI/CD , Github Actions
本文字数: 1.3k | 阅读时长 ≈ 1 分钟

Github 推出个人免费私有仓库后,我就逐渐把在其它平台的私有仓库迁移过来了,万分方便。

唯一的遗憾就是 CI/CD,之前使用 Gitlab CI 体验很好,以至于我对其它的 CI 工具都提不起兴趣,一直期待 Github 能推出类似的,所以 Github Actions 的推出我是无比兴奋的。

阅读全文 »

Node.js 源码分析 - 加载 js 文件

发表于 2018-11-30 | 更新于 2019-03-13 | 分类于 Node.js 源码分析
本文字数: 4.9k | 阅读时长 ≈ 4 分钟

提出问题

了解 js 文件加载前的准备工作

在《从 main 函数开始》这篇中说到了 LoadEnvironment() 函数负责加载 js 代码,但并没有继续说明加载细节。

这篇从 LoadEnvironment() 开始探究 js 代码加载的详细过程。

阅读全文 »

Node.js 源码分析 - 原生模块(C++模块)的注册

发表于 2018-11-28 | 更新于 2019-03-13 | 分类于 Node.js 源码分析
本文字数: 9k | 阅读时长 ≈ 8 分钟

上一篇提到 RegisterBuiltinModules() 注册了原生 C++ 模块没有详细展开,这里就从这个函数展开。

阅读全文 »

Node.js 源码分析 - 从 main 函数开始

发表于 2018-11-27 | 更新于 2019-02-11 | 分类于 Node.js 源码分析
本文字数: 8.6k | 阅读时长 ≈ 8 分钟

小目标

知道程序大概执行逻辑,关键点执行的顺序

我们平时在终端敲下 node app.js 后,发生了什么。

具体点,知道 node.js 原生(C++)模块什么时候加载的,在哪加载的;
知道我们的 js 代码是在哪个环节被加载执行的;
知道进程的主循环(事件循环)什么时候启动的;

有了这个小目标的基础,在接下来的文章中,我们再进一步的探索 node.js 原生模块的注册是怎么实现的,怎么获取 & 初始化的,怎么曝露给 js 环境调用的;再细说 node.js 的模块机制,我们通常的 app.js 怎么被执行的;

阅读全文 »

Node.js 源码分析 - 目录 & 前言

发表于 2018-11-24 | 更新于 2019-03-13 | 分类于 Node.js 源码分析
本文字数: 899 | 阅读时长 ≈ 1 分钟

这两年先后两次读过 Node.js 源码,但是每次都懒于记录,过几个月就忘记了,这次把疏理过程记录下来,以免之后再浪费时间从头看。虽然是为了备忘,我会尽量站在读者的角度写,以望能帮助想了解 Node.js 源码的朋友节省一些时间、精力。

适合谁

- 你需要熟悉 C/C++
- 你需要熟悉 Node.js,理解异步编程及原理
阅读全文 »

GitLab CI 示例:构建 & 部署 Web 前端项目(部署到 Swarm)

发表于 2018-11-22 | 更新于 2019-11-18 | 分类于 CI/CD , GitLab CI/CD
本文字数: 2.7k | 阅读时长 ≈ 2 分钟

问题

Web 前端的应用需要在 node 环境下安装依赖和构建,但是发布一般又是用 nginx 镜像,我们既不想在 node 容器里安装 nginx,也不想在 nginx 容器里安装 node;

TL;DR

所以,我们先在一个 node 容器中 build 应用,利用 GitLab CI Cache 机制,将构建后的目标文件(通常是 dist 文件夹)缓存,以便在发布阶段 (release stage) 可以使用。

这里我所谓的 release 是指发布 docker image ,所以需要一个 Dockerfile,并且是以 nginx image 为基础镜像构建的。

我这里是部署到 swarm 集群上,所以会首先把 docker-stack.yml 文件 scp 到目标服务器上。

阅读全文 »

GitLab CI 示例:利用 CI 同步生产环境数据库到开发环境

发表于 2018-11-20 | 更新于 2019-11-18 | 分类于 CI/CD , GitLab CI/CD
本文字数: 4.5k | 阅读时长 ≈ 4 分钟

问题

我们通常需要频繁的将生产环境(production)的数据库同步到 develop 和 staging 环境。

之前我们的做法是写了一个 shell 在服务器上手动运行,这个需要测试人员和开发人员拥有服务器权限,甚至是生产环境的权限,风险较大且 “不够 CI/CD 化”。

后来是想写一个 HTTP 服务来触发这样的数据库同步操作,增加了额外的工作开销,还要为这个服务配相应的 CI/CD,不如直接使用 GitLab CI 来完成这个工作。

GitLab CI Pipeline 不仅可以在用户 push 代码的时候被触发,还可以通过 HTTP 调用的形式主动触发。

目标

开发 & 测试人员将 production 环境的数据库同步到 develop / staging 环境:

- 无需接触服务器环境
- 任意时间可主动进行同步(相对于计划任务而言)
- 可指定同步某个项目相关的数据库
- 可指定同步到某个服务器环境 ( develop / staging )

预设场景:

- 有三个数据库项目:project-a  project-b  project-c
- 有三个服务器环境:production  develop  staging
- 通过 GitLab CI Pipeline Triggers 来触发执行(HTTP方式)
- 我们可任意指定同步某一个项目的 production 数据库到 develop 或 staging
阅读全文 »

GitLab CI 示例:Docker 镜像打包发布 & SSH 部署

发表于 2018-11-18 | 更新于 2019-11-18 | 分类于 CI/CD , GitLab CI/CD
本文字数: 1.8k | 阅读时长 ≈ 2 分钟

目标

当我们 push 代码到 git 仓库时,将项目部署到目标服务器上,具体步骤:

- 基于代码仓库中的 Dockerfile 构建代码镜像
- 将构建的代码镜像推送到我们的私有镜像仓库
- 通过 ssh 连接目标服务器,远程执行部署指令,基于代码镜像启动容器
阅读全文 »
123
Maslow

Maslow

Fullstack Developer

21 日志
9 分类
22 标签
RSS
GitHub E-Mail
友情链接
  • 在线编程练习平台
  • 云风的BLOG
  • lunaragon's blog
0%
© 2019 Maslow | 站点总字数: 67k | 站点阅读时长 ≈ 1:01
由 Hexo 强力驱动 v3.8.0
总访客量: 总浏览量: