# 安装Dockerhttps://docs.docker.com/get-docker/# 安装Docker Composehttps://docs.docker.com/compose/install/# CentOS安装Dockerhttps://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA详见:https://docs.n8n.io/hosting/installation/docker/https://github.com/n8n-io/n8n-hosting
mkdir n8ncd n8n
详见:https://github.com/n8n-io/n8n-hosting/tree/main/docker-compose/withPostgres
创建.env文件:
详见:https://github.com/n8n-io/n8n-hosting/blob/main/docker-compose/withPostgres/.env
POSTGRES_USER=changeUserPOSTGRES_PASSWORD=changePasswordPOSTGRES_DB=n8nPOSTGRES_NON_ROOT_USER=changeUserPOSTGRES_NON_ROOT_PASSWORD=changePassword
修改.env文件:
POSTGRES_USER=rootPOSTGRES_PASSWORD=rootPOSTGRES_DB=n8nPOSTGRES_NON_ROOT_USER=testPOSTGRES_NON_ROOT_PASSWORD=test
创建init-data.sh文件:
详见:https://github.com/n8n-io/n8n-hosting/blob/main/docker-compose/withPostgres/init-data.sh
#!/bin/bashset -e;if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}'; GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER}; GRANT CREATE ON SCHEMA public TO ${POSTGRES_NON_ROOT_USER}; EOSQLelseecho "SETUP INFO: No Environment variables given!"fi
创建docker-compose.yml文件:
详见:https://github.com/n8n-io/n8n-hosting/blob/main/docker-compose/withPostgres/docker-compose.yml
version: '3.8'volumes: db_storage: n8n_storage:services: postgres: image: postgres:16 restart: always environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - db_storage:/var/lib/postgresql/data - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 10 n8n: image: docker.n8n.io/n8nio/n8n restart: always environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} ports: - 5678:5678 links: - postgres volumes: - n8n_storage:/home/node/.n8n depends_on: postgres: condition: service_healthy
修改docker-compose.yml文件:
sed -i 's/version/#version/g' docker-compose.yml#sed -i -z 's/volumes:\n db_storage:\n n8n_storage:/#volumes:\n# db_storage:\n# n8n_storage:/g' docker-compose.ymlsed -i 's/image: docker.n8n.io\/n8nio\/n8n/image: n8nio\/n8n/g' docker-compose.yml首次访问,会出现以下提示信息,可以根据给出的提示进行修复暂时采用方案3,添加环境变量N8N_SECURE_COOKIE=false# 命令:sed -i -z 's/environment:\n - DB_TYPE=postgresdb/environment:\n - N8N_SECURE_COOKIE=false\n - DB_TYPE=postgresdb/g' docker-compose.yml
docker-compose up -d
docker ps
docker volume ls
# 当前数据卷有:n8n_db_storage、n8n_n8n_storage# docker volume inspect n8n_db_storage n8n_n8n_storagedocker volume inspect n8n_db_storage# 挂载点:/var/lib/docker/volumes/n8n_db_storage/_datadocker volume inspect n8n_n8n_storage# 挂载点:/var/lib/docker/volumes/n8n_n8n_storage/_datadocker-compose down
docker rmi postgres:16 n8nio/n8n
docker volume rm n8n_db_storage n8n_n8n_storage
docker pull n8nio/n8n
docker volume create n8n_data
docker run -it -d \ --name n8n \ -e N8N_SECURE_COOKIE=false \ -p 5678:5678 \ -v n8n_data:/home/node/.n8n \ n8nio/n8n
docker ps
docker volume ls
# 当前数据卷有:n8n_datadocker volume inspect n8n_data# 挂载点:/var/lib/docker/volumes/n8n_data/_datadocker stop n8n
docker rm n8n
docker rmi n8nio/n8n
docker volume rm n8n_data
假设当前ip为192.168.186.128浏览器访问:http://192.168.186.128:5678




https://n8n.io/https://github.com/n8n-io/n8nhttps://github.com/n8n-io/n8n-hosting
本文链接:https://www.kinber.cn/post/6142.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
