ubuntu 裸机安装docker和n8n自动化工作流工具
ubuntu 安装 n8n 自动化工作流工具,本文包含了虚拟机和 docker 的安装等。
http://mirrors.aliyun.com/ubuntu-releases/ 我使用了阿里云镜像较旧的版本,16.04.7
安装完成后,进行基础配置
基础配置
开户超级管理员权限(看自己需要)
# sudo 然后输入相关密码
sudo passwd root
先关闭防火墙
sudo ufw disable
利用虚拟机搭建时,选择桥接
sudo nano /etc/network/interfaces
静态IP设置示例:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
完成后输入 CTRL+O 保存,再输入回车,然后重启网络
sudo service network-manager restart
本地开发的时候,安装 openssh 来支持远程连接。
# 一定要先更新安装包源
sudo apt update
# 安装openssh
sudo apt install openssh-server
这时候如果报错 please insert the disc labeled
说明该系统本身未安装 SSH 服务,所以会导致终端无法连接的情况。但是在安装 SSH 服务的过程中,遇到 Media change: please insert the disc labeled 的问题,如下图:
所以解决办法,找到 Ubuntu 的安装配置源 /etc/apt/sources.list,就是将该源进行注释掉即可,如下图:
注释掉之后再次执行上面的安装命令即可。
参考资料 https://blog.csdn.net/Hello_World_QWP/article/details/82790961
完成安装之后,可以切换到宿主机的 cmd 命令窗口来操作了,这样看起来方便些,接下来进行 docker 安装。
ubuntu docker 安装
也可参考这里 https://blog.csdn.net/urnotlanxi/article/details/128005616
移除旧版本
apt-get remove docker docker-engine docker.io containerd runc
更新软件列表
sudo apt-get update
允许 apt 命令可以使用 HTTP 访问 Docker repository
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加 docker 官方 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加阿里源然后更新
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
安装 docker-ce
sudo apt-get install docker-ce docker-ce-cli containerd.io
要进一步使用 github.com 相关的资源可以先关闭防火墙,然后对apt进行升级,速度明显会快很多,不知为何
sudo ufw disable
sudo apt update
sudo apt upgrade
安装 docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.9.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
docker-compose 在国内极其难装,如果安装不了可直接使用命令 apt install docker-compose
就可以了,我是用了这种方式安装。
安装N8N
下载 n8n,我这里直接使用 http
git clone https://github.com/n8n-io/n8n.git
下载过程可能比较慢,此过程中可以同时安装其他需要的东西。
由于我的工作比较特殊,需要对 n8n 进行二次开发,所以我计划基于源码创建本地镜像,本地源码编译需要有 node.js 相关依赖,因为它就是基于这个语言开发的,所以这里安装一下。
apt install npm node.js
n8n 提供了非常多的数据库组合形式创建,默认使用sqlLite数据库。在它的 docker->compose 目录中,有根据 postgresql 和 MariaDB 部署的编排文件。
由于我要自己打包,所以使用 docker->compose->images->n8n-custom
目录下它的 Dockerfile 进行编译。
使用 注意版本号的变量要对上,否则可能编译失败。
docker build --build-arg N8N_VERSION=0.234.0 -t n8n_lc:v0.1 .
编译完成后,修改 docker->compose->withPostgres 目录下的 docker-compose.yaml。我经过自己需要修改完成之后的样子是下面这样,与原来的文件有很大出入,请根据自己需要修改。
注意 n8n 的首次登录密码可以在 docker-compose 里面设置。
version: '2'
services:
postgres:
image: postgres:11
ports:
- 5432:5432
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=linux
- POSTGRES_DB=postgres
volumes:
- /data/postgresql:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
n8n:
image: n8n_lc:v0.1
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=postgres
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=linux
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=root
- N8N_BASIC_AUTH_PASSWORD=linux
ports:
- 5678:5678
links:
- postgres
volumes:
- /data/n8n:/home/node/.n8n
depends_on:
- postgres
networks:
default:
external:
name: "n8n_bridge"
此处创建了一个自定义网络 sbridge,让两个容器关联起来。
docker network create n8n_bridge
至此,n8n 部署完成。运行起来后它会监听 5678 端口,进入安装流程,一切都是自动的。
声明: 因编程语言版本更新较快,当前文章所涉及的语法或某些特性相关的信息并不一定完全适用于您当前所使用的版本,请仔细甄别。文章内容仅作为学习和参考,若有错误,欢迎指正。