espanso/match/docker.yml
2026-06-09 09:55:45 +08:00

197 lines
4.2 KiB
YAML

# Docker snippets - trigger schema: }d<command>
# d = docker
matches:
# === CORE COMMANDS ===
- trigger: "}dr"
replace: "docker run {{mode}} {{ports}} {{img}}"
vars:
- name: img
type: choice
params:
values: ["$|$", "nginx"]
- name: mode
type: choice
params:
values: ["", "-d", "-it", "-d --rm"]
- name: ports
type: choice
params:
values: ["", "-p 8080:80", "-p 3000:3000", "-p 5432:5432"]
- trigger: "}db"
replace: "docker build -t {{tag}} {{ctx}}"
vars:
- name: tag
type: choice
params:
values: ["$|$", "my-app:latest"]
- name: ctx
type: choice
params:
values: [".", "/path/to/context"]
- trigger: "}dp"
replace: "docker push $|$"
- trigger: "}dpl"
replace: "docker pull $|$"
- trigger: "}dps"
replace: "docker ps {{opt}}"
vars:
- name: opt
type: choice
params:
values:
["", "-a", '--format "table {{.Names}}\t{{.Image}}\t{{.Status}}"']
- trigger: "}di"
replace: "docker images"
- trigger: "}dst"
replace: "docker stop $|$"
- trigger: "}dsta"
replace: "docker stop $(docker ps -q)"
- trigger: "}drm"
replace: "docker rm $|$"
- trigger: "}drmi"
replace: "docker rmi $|$"
- trigger: "}dl"
replace: "docker logs -f $|$"
- trigger: "}de"
replace: "docker exec -it {{cnt}} {{cmd}}"
vars:
- name: cnt
type: choice
params:
values: ["$|$", "<container>"]
- name: cmd
type: choice
params:
values: ["sh", "bash", "/bin/bash"]
- trigger: "}dpr"
replace: "docker system prune -f"
- trigger: "}dpra"
replace: "docker system prune -a --volumes -f"
- trigger: "}din"
replace: "docker inspect $|$"
# === COMPOSE ===
- trigger: "}dcu"
replace: "docker compose up {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-d", "--build", "-d --build"]
- trigger: "}dcd"
replace: "docker compose down {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["", "--volumes", "--rmi all"]
- trigger: "}dcl"
replace: "docker compose logs -f $|$"
- trigger: "}dce"
replace: "docker compose exec {{svc}} {{cmd}}"
vars:
- name: svc
type: choice
params:
values: ["$|$", "web", "db", "api"]
- name: cmd
type: choice
params:
values: ["sh", "bash", "python manage.py migrate"]
- trigger: "}dcb"
replace: "docker compose build $|$"
# === DOCKERFILE SNIPPETS ===
- trigger: "}df"
replace: |
FROM {{base}}
WORKDIR /app
COPY . .
RUN {{run}}
EXPOSE {{port}}
CMD ["{{cmd}}"]
vars:
- name: base
type: choice
params:
values: ["$|$", "node:20-alpine", "python:3.11-slim", "ubuntu:22.04"]
- name: run
type: choice
params:
values:
[
"npm ci",
"pip install -r requirements.txt",
"apt update && apt install -y <pkg>",
]
- name: port
type: choice
params:
values: ["3000", "8000", "80", "8080"]
- name: cmd
type: choice
params:
values: ["npm start", "python app.py", "node server.js"]
- trigger: "}dfn"
replace: |
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
- trigger: "}dfp"
replace: |
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]
# === CONFIG ===
- trigger: "}dign"
replace: |
.git
node_modules
.env
*.log
dist/
build/
.dockerignore
- trigger: "}denv"
replace: "ENV {{key}}={{val}}"
vars:
- name: key
type: choice
params:
values: ["$|$", "NODE_ENV", "PORT", "DEBUG"]
- name: val
type: choice
params:
values: ["production", "3000", "true", "false"]