惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
小众软件
小众软件
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志
Hacker News: Ask HN
Hacker News: Ask HN
D
Docker
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
Google Developers Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
GRAHAM CLULEY
S
Schneier on Security
T
Tor Project blog
Spread Privacy
Spread Privacy
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Fortinet All Blogs
L
Lohrmann on Cybersecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Exploit Database - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
罗磊的独立博客

DevOps

复制企业级 Linux 开发环境:如何实现严格开发环境与生产环境一致性的基础架构策略 - V2EX 带有账密的 ISP 住宅代理,海外服务器请求正常, macOS 本地 curl 持续失败 A lock-file-based plugin manager for Jenkins 从 2022 年至今, DevOps 技术栈有什么新的发展吗 oracle 1U1G 机器能吗? 各位都是怎样优雅的 pull 容器镜像的 Gisia 新版发布,增加看板功能,欢迎提意见 内部做一个新的环境,在更新生产环境前先把生产服务等先在这个服务上过一遍,确认没问题后再上生产,这个环境叫什么环境?这种流程叫什么流程? 使用 containerd 配置镜像加速不生效问题 一个 Jenkins 技术问题,要被搞疯了 推荐一款轻量级 DevOps 平台 tg 上运维/sre/devops 相关的交流群 有哪些能满足要求的 DevOps 平台? 国内参加 CKA/CKAD 考试有无推荐的代理提供商 关于 Java 项目的健康检查、自愈和轻量级管理 drone 构建一直卡住,心力憔悴 [Terraform/腾讯云] 有用 Terraform 来管理腾讯云的朋友吗,它这个频率限制真的没问题吗? 遇到一点证书问题,望运维大佬给看看 - V2EX 关于 CMDB 如何保证数据一致性的讨论 Red Hat Access 文档下载求助 各位 Linux 运维的巨佬工作用 mac 吗 - V2EX 遇到一个 Redis 跨 VPC 读取的问题 好奇 Linux 运维 修改配置一般有做版本控制吗 - V2EX 私有化 SaaS 系统应该支持随便换域名吗 - V2EX 请教一个关于容器化部署的问题 官方 helm charts V.S. bitnami helm charts V.S. 官方 operator,大家一般倾向于用哪个? terraform 原理的一点儿思考 私有化部署太难搞了 - V2EX Google SRE 的 on-call 方法和工具 开发转做运维开发,有什么需要注意的?需要额外学习和掌握什么? 大家的 CI 都是怎么搭建的? 开源 CMDB 新增支持多种认证方式: CAS、OAuth2.0、OIDC,并已兼容测试 casdoor 很好奇还有没有类似 Jenkins 的 配置 Freestyle 项目的 CI/CD 工具 坚持为「专业性」买单,就是最大的降本增效! KCL 社区最新动态速递 | IDE 插件支持引用查找和重命名、CNCF ArtifactHub KCL 集成 - V2EX cmdb vs rpa ? 国内有没有类似 FreeIPA 和 Keycloak 的产品? 求推荐一个可以管理多个 Linux 系统的平台 ipv6 访问 docker 最优雅的姿势是啥? 私有化部署术语大家一般用 self-host(及其变种)还是 on-premise? 上线时需要将迭代期内的各种配置改动同步到生产环境,有没有好用的配置备忘录的工具? 有没有数据库 CICD 方面比较好的实践 Nexus Repository 3 权限管理思路, LDAP 集成与单点,助力 CI/CD 加速 sonarqube 与 gitlab 的账号单点认证与项目集成详解 如何设置 azure devops 上 创建的 pull request 在满足某些条件时, 自动能够完成合并到目标分支 jenkins pipeline 如何在 stage3 错误的时候,返回 stage2 重新执行 4 位硬科技创始人对谈 DevOps 硬件实战 jenkins 如何在一个任务中创建多个构建触发器,并且每个构建触发器对应的步骤是不同的 Unity 单元测试和 Gitlab 自动化集成示例 怎么做好运维 Windows Server 如何做 CI/CD?
在单服务器搭最小规模的 CICD 的技术栈是什么 - V2EX
importmeta · 2024-11-02 · via DevOps

这是一个创建于 589 天前的主题,其中的信息可能已经有所发展或是发生改变。

搞了个应用, 有前端, Node 后端, Redis, Postgres, Nginx, Grafana Loki Promtail.

用 Docker Compose 启动了一下, 每次发现改点代码都要手动把文件传上去构建镜像, 老麻烦了.

一看阿里云容器镜像服务, 收费还很贵, 不适合我.

谢谢了.

agagega

1

agagega      2024 年 11 月 2 日 via iPhone   ❤️ 1

Buildbot ?

tms

2

tms      2024 年 11 月 2 日   ❤️ 1

Gitea ?

RightHand

3

RightHand      2024 年 11 月 2 日 via Android   ❤️ 1

gitea+Jenkins 配合 docker 基本满足

iminto

4

iminto      2024 年 11 月 2 日 via Android   ❤️ 1

jenkins,靠谱,不依赖 docker,离线部署

zhcode

5

zhcode      2024 年 11 月 2 日   ❤️ 1

只在公司用过 Jenkins ,轻量的话 听说 drone 不错

Livid

6

Livid      2024 年 11 月 2 日   ❤️ 4

GitHub Action + 本地 runner

Cola98

7

Cola98      2024 年 11 月 2 日   ❤️ 1

makefile ?

crackidz

8

crackidz      2024 年 11 月 2 日   ❤️ 1

Github Action / GitLab Runner

KagurazakaNyaa

9

KagurazakaNyaa      2024 年 11 月 2 日   ❤️ 3

gitea+gitea runner ,兼容 GitHub Action 语法
参考写法
```yaml
services:
server:
image: gitea/gitea:latest
restart: always
ports:
- "3000:3000"
- "127.0.0.1:2222:22"
environment:
- USER_UID=998
- USER_GID=974
volumes:
- ./data:/data
- /home/git/.ssh/:/data/git/.ssh
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro

runner:
image: gitea/act_runner:latest
restart: always
depends_on:
- server
ports:
- "8088:8088"
volumes:
- ./runner_data:/data
- ./runner_config.yaml:/config.yaml
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
environment:
- CONFIG_FILE=/config.yaml
- GITEA_INSTANCE_URL=[redacted]
- GITEA_RUNNER_REGISTRATION_TOKEN=[redacted]
- GITEA_RUNNER_NAME=default
```

其中 runner_config.yaml 是用于处理 cache 的,其内容类似于
```yaml
cache:
enabled: true
# dir: ""
# Use the LAN IP obtained in step 1
host: "10.10.10.12"
# Use the port number obtained in step 2
port: 8088
```

如果遇到问题可以参考 https://docs.gitea.com/zh-cn/usage/actions/overview 这里
另外有时候默认的标签会有问题,可以考虑修改./runner_data/.runner 里面的 labels 为
```json
"labels": [
"ubuntu-latest:docker://catthehacker/ubuntu:act-latest",
"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04",
"ubuntu-20.04:docker://catthehacker/ubuntu:act-20.04",
"ubuntu-18.04:docker://catthehacker/ubuntu:act-20.04"
]
```

Ipsum

11

Ipsum      2024 年 11 月 2 日   ❤️ 1

我都是 makefile 一把梭,本地构建然后 push 过去部署

yveJohn

12

yveJohn      2024 年 11 月 2 日   ❤️ 2

gitea+drone 轻量又丝滑

bbchannails

13

bbchannails      2024 年 11 月 2 日   ❤️ 1

idea 同步代码, sync to remote 就行. 特别适合解释型的语言, java 也可以, 但是要解开容器不要用 fat jar

FlytoSirius

14

FlytoSirius      2024 年 11 月 2 日   ❤️ 1

别 Jenkins 了, 你会费心死的, 还是直接用 GitLab 吧

gongquanlin

16

gongquanlin      2024 年 11 月 2 日   ❤️ 1

直接写 shell ;
```shell
#!/bin/bash

# 指定目标 IP 和用户
TARGET_IP="127.0.0.1" # 替换为目标服务器的 IP 地址
USER="root" # 替换为你的 SSH 用户名
PASSWORD="aasdf" # SSH 密码

# 本地文件路径
LOCAL_FILE="./dist/linux/main" # 本地文件路径
REMOTE_FILE="/home/opt/helloworld" # 远程文件路径

sshpass -p "${PASSWORD}" scp -O ${LOCAL_FILE} ${USER}@${TARGET_IP}:${REMOTE_FILE}
echo "upload ${TARGET_IP} success"
# 使用 sshpass 连接到指定 IP
sshpass -p "${PASSWORD}" ssh ${USER}@${TARGET_IP} << EOF
# 进入指定目录
cd /home/opt/

# 停止 Docker 容器
docker compose down

# 替换文件
cp ${REMOTE_FILE} main

# 启动 Docker 容器
docker compose up -d
EOF

echo "deploy ${TARGET_IP} success"
```

james122333

17

james122333      2024 年 11 月 2 日 via Android

懂这个差不多就可以自己做一个类似 gitlab jenkins 的出来了

james122333

18

james122333      2024 年 11 月 2 日 via Android

当有人讲 gitlab jenkins 等东西有多屌
你就可以跟他说 "少年 你对力量 一无所知"

hb0730

19

hb0730      2024 年 11 月 2 日   ❤️ 1

drone 还不错

SethShi

20

SethShi      2024 年 11 月 2 日   ❤️ 1

试试免费的 coding, 每个月好像有免费的机器给你构建, 基本都够我用.
像我的博客用 hugo, 在 coding 构建好 HTML, 直接部署

XuHuan1025

22

XuHuan1025      2024 年 11 月 2 日

兄弟们 问题来了 内网怎么 ci/cd 用的 jenkins-nexus-docker 导包啥的真恶心啊

jeesk

23

jeesk      2024 年 11 月 2 日 via Android   ❤️ 1

啥项目? 个人项目,直接本地构建, 公司项目, 当然是 jenkins , 舍得花钱直接买付费的 ci 就行了

iminto

24

iminto      2024 年 11 月 2 日 via Android   ❤️ 1

当有人说 jenkins 多 low 多古董的话,你就可以跟他说 "少年 你对力量 一无所知"

jenkins 之外,皆是歪门邪道。

要么依赖 docker ,让环境部署变得异常复杂,要么功能和概念过于复杂。

你说依赖 docker ,首先 docker 在中国大陆就很难下载,就算解决了网络问题,还得配离线仓库,把问题搞那么复杂。

jenkins 就是一个 war 包,傻瓜式部署,简单到不能再简单。

KagurazakaNyaa

25

KagurazakaNyaa      2024 年 11 月 2 日

@iminto 建议多用用,Jenkins 光是各种插件依赖要管理起来就很麻烦了,到时候照样要走梯子
纯写 ssh 又要管理脚本,然后你 pipeline 是不是还要额外的仓库来存储,凭据怎么管理,是不是要做统一身份认证,要不要和 git 服务做整合
还有你怎么处理 workspace 的环境干净,最后还不是要引入容器化甚至虚拟化确保构建可重复性?
然后你要事件触发是不是还要额外配置 Jenkins 项目里的轮询,每次改构建流程和参数是不是要改 3 个地方,一个是项目本身的代码,一个是 pipeline 的 jenkinsfile ,然后还要在界面上配置 job 的参数修改和触发时机,这不是引入了更多的复杂度?

KagurazakaNyaa

26

KagurazakaNyaa      2024 年 11 月 2 日   ❤️ 3

@iminto Jenkins 确实很好用,功能也很强大,在某些特定的场景下是最佳的选择(比如你要传递很多复杂的参数并且需要界面跟随你的选择调整可选择的参数),但是并不能覆盖所有的场景,比如本主题提到的“单服务器最小规模 CI/CD”,Jenkins 的资源消耗并不低,同时它的部署和管理以及使用也没有想象中的那么简单和方便,要实现和 GitHub Action 一样的便利性还是有相当的差距。

wangee

27

wangee      2024 年 11 月 2 日   ❤️ 1

如果现有的代码可以依托于 Gitea 的话,Gitea + Gitea Runner 足够了,如果喜欢 GitLab CI/CD 的语法,可以用 DroneCI 。

如果现在的代码在 GitLab 上,那么 GitLab Runner 或者 DroneCI 都不错。

esee

28

esee      2024 年 11 月 2 日   ❤️ 1

以前也配置一套流程,后来发现我们用不到那么复杂的流程,自己写个 shell 脚本,远端程序备份,本地编译,打包压缩上传,解压后上线运行。就结束了。

lgh

29

lgh      2024 年 11 月 3 日 via iPhone   ❤️ 1

可以试试 caprover ,底层是 docker swarm

echo0x000001

31

echo0x000001      2024 年 11 月 3 日   ❤️ 1

看了下阿里的容器服务个人版,300 个免费仓库,完全够用了

Trim21

32

Trim21      2024 年 11 月 3 日 via Android   ❤️ 1

最简单/简陋的办法是用 gitea 的 hooks

cctv6

33

cctv6      2024 年 11 月 3 日 via Android   ❤️ 1

单服务器,并且就一个前端+后端的应用,我觉得没必要再单独整个 cicd 服务。

如果你的诉求只是 “每次发现改点代码都要手动把文件传上去构建镜像, 老麻烦了.”

那你可能缺的是代码 push 后,配置触发自动构建,这个基本上常见的代码托管平台都支持 webhook 。

要说最小规模的,手写个脚本应该是最快最简单的成本最低的方法。

devopsdogdog

34

devopsdogdog      2024 年 11 月 3 日 via Android   ❤️ 1

从运维或者架构角度,你这做法就不对吧。
1. 镜像和代码产物应该分开,减少编译和进行版本控制,环境代码解耦
2. 为啥不考虑挂载。。。

darrh00

35

darrh00      2024 年 11 月 3 日   ❤️ 1

gitea+act runner

amlee

36

amlee      2024 年 11 月 3 日   ❤️ 1

dokploy 就够了

mayli

37

mayli      2024 年 11 月 3 日   ❤️ 1

最小的大概 cronjob git pull

james122333

38

james122333      2024 年 11 月 3 日 via Android

@iminto

现在每个上层应用都是过于复杂的 gitlab jenkins 或其它有的没的都是 命令行才是直觉暴力的工具 基本教义才是最直面问题的

nickxudotme

41

nickxudotme      2024 年 11 月 3 日 via iPhone   ❤️ 1

@echo0x000001 对哇我记得个人版很够用了,再在 docker compose 里加个 watchtower ,只用在 cicd 里推镜像就好了,那边会自动拉取

wuoty

42

wuoty      2024 年 11 月 3 日   ❤️ 1

阿里云容器镜像服务个人版不是免费的么,300 个仓库+Webhook 应该能完成 CICD 的流程了

wangyzj

43

wangyzj      2024 年 11 月 3 日   ❤️ 1

一个 jenkins 够了

windcode

44

windcode      2024 年 11 月 3 日   ❤️ 1

只要使用了 docker ,构建镜像这一步是少不了的,区别是自动构建还是手动构建。

你的例子里最简单的就是 Git + Docker Compose ,本地代码开发完 git push ,然后在 VPS 上 git pull + docker compose 自动构建,对于小型应用来说足够了。

如果想进一步自动化,Github Action + 本地 runner 足够。

realpg

45

realpg      2024 年 11 月 3 日   ❤️ 1

直接基于 git webhook 自己写处理脚本 不需要任何成型系统

COW

46

COW      2024 年 11 月 3 日 via Android   ❤️ 1

不在乎用户体验的话,前后端别 docker 了,直接远程连到服务器上写代码,直接服务器上构建发布就得了

Dragonphy

47

Dragonphy      2024 年 11 月 3 日

用 Gitea Actions 怎么解决网络问题?全都是 pull github 的。

anjv

49

anjv      2024 年 11 月 3 日   ❤️ 1

git 有 hook 功能。

ssh 服务器可以当作是 git 服务器。
远程服务器上创建裸仓库
cd && git init --bare test.git

本地
git clone ssh://用户名 @地址:/home/用户名/test.git

服务器上配置好编译环境 ,写 githook 。
git push 的时候就调用 hook 脚本帮你编译代码。

forevam

50

forevam      2024 年 11 月 3 日   ❤️ 1

coding 每个月 10 小时免费。看看能覆盖不?

shenyuzhi

51

shenyuzhi      2024 年 11 月 3 日   ❤️ 1

一个 shell 脚本的事情

ByteCat

52

ByteCat      2024 年 11 月 3 日 via Android   ❤️ 1

之前用 Gitea+Drone ,现在 Gitea 出 Actions 了就用 Gitea Actions ,基本兼容 GitHub Actions ,但用得多的话有些功能还没实现,简单的都可以代替了,还不错

shimada666

53

shimada666      2024 年 11 月 3 日   ❤️ 1

可以用阿里云云效,不用自己维护 cicd 服务

version

54

version      2024 年 11 月 3 日   ❤️ 1

gitLab-ci 是不错的.可以当 cicd 镜像编译工具....可以当运行器..跑 sh 或者 自己编译私有 docker run 来跑脚本...
也可以当运维工具..定时器也有..ssh 密钥等可以放在 cicd 的变量里面加密..
说真的 jenins 基本我都卸载了.有点老套

aaronnum7

56

aaronnum7      2024 年 11 月 3 日   ❤️ 2

@aaronnum7 点错了,我也是单服务器的,技术栈是
运行系统:k3s
镜像管理:免费的 Dockerhub
CI/CD:dagger ,Docker 创始人新项目。非常好用,支持用编程语言写 CI/CD 代码。最后一个命令,直接本地构建推送部署。

sampeng

57

sampeng      2024 年 11 月 3 日   ❤️ 1

哪那么麻烦。。gitlab 你装上啥都有了。。写 gitlab-ci.yaml 就完事了

fsdrw08

58

fsdrw08      2024 年 11 月 3 日 via Android   ❤️ 1

jenkins 也能容器化部署啊

darrh00

59

darrh00      2024 年 11 月 3 日   ❤️ 1

@Dragonphy #47

可以自己定制 gitea runner 镜像,像我们项目用到的 java/maven/node.js/golang 全打包在一个镜像里,除了这些基本工具,如果还依赖其他 actions ,直接从 github 镜像一份到本地 gitea ,然后 runner action 的默认镜像指向本地,就基本不会再依赖外部网络了。

3825995121

60

3825995121      2024 年 11 月 4 日   ❤️ 1

github action=> 打包到阿里云私有镜像 => 服务器 docker 拉取部署

dreamage

61

dreamage      2024 年 11 月 4 日   ❤️ 1

说个没人提过的 spug

spritecn

62

spritecn      2024 年 11 月 4 日   ❤️ 1

自建 git + drone ,已实践,确实不错

Ashfall

65

Ashfall      2024 年 11 月 4 日   ❤️ 1

建议试试 zeabur 免费托管自己服务器,然后镜像仓库用 ACR

remrin

66

remrin      2024 年 11 月 4 日   ❤️ 1

Github Actions 配置 workflow 之后推送触发打包镜像,然后 push 到 dockerhub ,服务器上的 docker 用插件或者其他方式实现自动更新,或者尝试在 workflow 中直接 ssh 到服务器上更新容器,dockerhub 免费只有一个镜像仓库,如果镜像有多个还得订阅