写运维相关的 YAML 文件,核心是先搞清楚用在什么场景,因为不同场景(Docker Compose、Kubernetes、Ansible、CI/CD 等)写法差别很大。
下面我按常见运维场景,给你一套能直接抄的结构 + 说明。
version: "3.8"
services:
web:
image: nginx:1.25
container_name: nginx-web
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
restart: always
depends_on:
- db
db:
image: mysql:8.0
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: appdb
volumes:
- db_data:/var/lib/mysql
restart: always
volumes:
db_data:
✅ 关键点:
services 定义服务volumes 做数据持久化restart: always 保证宕机自启apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 30080
✅ 关键点:
--- 分隔多个资源- name: 安装 Nginx
hosts: web
become: yes
tasks:
- name: 安装 nginx
apt:
name: nginx
state: present
- name: 启动 nginx
service:
name: nginx
state: started
enabled: yes
✅ 关键点:
hosts 指定目标become: yes 提权name: deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker build -t myapp .
- run: docker push myapp
key: value ✅
key:value ❌
-kubectl / docker compose / ansible 跑起来你可以直接说:
「我是做 (Docker / K8s / Ansible / CI) 的,想写一个 (服务名) 的 YAML」
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。