250 lines
5.8 KiB
YAML
250 lines
5.8 KiB
YAML
# Docker Snippets for Espanso
|
|
matches:
|
|
# === Core Docker Commands ===
|
|
- trigger: "}dckr"
|
|
replace: "docker run $1$ $2$ $3$ $4$"
|
|
vars:
|
|
- name: image
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "nginx", "postgres:15", "redis:alpine", "node:20"]
|
|
- name: mode
|
|
type: choice
|
|
params:
|
|
values: ["", "-d", "-it"]
|
|
- name: ports
|
|
type: choice
|
|
params:
|
|
values: ["", "-p 8080:80", "-p 3000:3000", "-p 5432:5432"]
|
|
- name: volumes
|
|
type: choice
|
|
params:
|
|
values:
|
|
["", "-v $(pwd):/app", "-v ~/data:/var/lib/postgresql/data", ""]
|
|
|
|
- trigger: "}dckb"
|
|
replace: "docker build -t $1$ $2$"
|
|
vars:
|
|
- name: tag
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "my-app:v1", "my-app:latest"]
|
|
- name: context
|
|
type: choice
|
|
params:
|
|
values: [".", "/path/to/build/context", ""]
|
|
|
|
- trigger: "}dckp"
|
|
replace: "docker push $1$"
|
|
vars:
|
|
- name: image
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "my-app:v1", "registry.example.com/my-app:latest"]
|
|
|
|
- trigger: "}dckpl"
|
|
replace: "docker pull $1$"
|
|
vars:
|
|
- name: image
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "nginx:latest", "postgres:15-alpine"]
|
|
|
|
- trigger: "}dckps"
|
|
replace: "docker ps $1$"
|
|
vars:
|
|
- name: option
|
|
type: choice
|
|
params:
|
|
values:
|
|
["", "-a", "--format \"table {{.Names}}\t{{.Image}}\t{{.Ports}}\""]
|
|
|
|
- trigger: "}dckim"
|
|
replace: "docker images"
|
|
|
|
- trigger: "}dckstop"
|
|
replace: "docker stop $1$"
|
|
vars:
|
|
- name: target
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<container-name>", "$(docker ps -q)"]
|
|
|
|
- trigger: "}dckstopa"
|
|
replace: "docker stop $(docker ps -q)"
|
|
label: Stop ALL running containers (use with caution!)
|
|
|
|
- trigger: "}dckrm"
|
|
replace: "docker rm $1$"
|
|
vars:
|
|
- name: target
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<container-name>", "$(docker ps -aq)"]
|
|
|
|
- trigger: "}dckrmi"
|
|
replace: "docker rmi $1$"
|
|
vars:
|
|
- name: target
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<image-name>", "$(docker images -q)"]
|
|
|
|
- trigger: "}dcklog"
|
|
replace: "docker logs -f $1$"
|
|
vars:
|
|
- name: container
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<container-name>"]
|
|
|
|
- trigger: "}dckex"
|
|
replace: "docker exec -it $1$ $2$"
|
|
vars:
|
|
- name: container
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<container-name>"]
|
|
- name: command
|
|
type: choice
|
|
params:
|
|
values: ["sh", "bash", "/bin/bash", ""]
|
|
|
|
- trigger: "}dckprune"
|
|
replace: "docker system prune -f"
|
|
|
|
- trigger: "}dckpruneall"
|
|
replace: "docker system prune -a --volumes -f"
|
|
label: Remove ALL unused Docker resources (irreversible!)
|
|
|
|
- trigger: "}dckinspect"
|
|
replace: "docker inspect $1$"
|
|
vars:
|
|
- name: target
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "<container-name>", "<image-name>"]
|
|
|
|
# === Docker Compose Commands ===
|
|
- trigger: "}dckcu"
|
|
replace: "docker compose up $1$ $2$"
|
|
vars:
|
|
- name: option
|
|
type: choice
|
|
params:
|
|
values: ["", "-d", "--build"]
|
|
- name: service
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "", "web", "db", "redis"]
|
|
|
|
- trigger: "}dckcd"
|
|
replace: "docker compose down $1$"
|
|
vars:
|
|
- name: option
|
|
type: choice
|
|
params:
|
|
values: ["", "--volumes", "--rmi all"]
|
|
|
|
- trigger: "}dckcl"
|
|
replace: "docker compose logs -f $1$"
|
|
vars:
|
|
- name: service
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "web", "db", ""]
|
|
|
|
- trigger: "}dckex"
|
|
replace: "docker compose exec $1$ $2$"
|
|
vars:
|
|
- name: service
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "web", "db"]
|
|
- name: command
|
|
type: choice
|
|
params:
|
|
values: ["sh", "bash", "python manage.py migrate", ""]
|
|
|
|
- trigger: "}dckcb"
|
|
replace: "docker compose build $1$"
|
|
vars:
|
|
- name: service
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "web", "db", ""]
|
|
|
|
# === Dockerfile Snippets ===
|
|
- trigger: "}dckfile"
|
|
replace: |
|
|
FROM $1$
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN $2$
|
|
EXPOSE 80
|
|
CMD ["$3$"]
|
|
vars:
|
|
- name: base_image
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "alpine:latest", "ubuntu:22.04"]
|
|
- name: install_cmd
|
|
type: choice
|
|
params:
|
|
values:
|
|
[
|
|
"apt update && apt install -y <package>",
|
|
"apk add --no-cache <package>",
|
|
"pip install -r requirements.txt",
|
|
"",
|
|
]
|
|
- name: start_cmd
|
|
type: choice
|
|
params:
|
|
values:
|
|
["nginx -g 'daemon off;'", "python app.py", "node server.js", ""]
|
|
|
|
- trigger: "}dckfile-node"
|
|
replace: |
|
|
FROM node:20-alpine
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
COPY . .
|
|
EXPOSE 3000
|
|
CMD ["npm", "start"]
|
|
|
|
- trigger: "}dckfile-py"
|
|
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"]
|
|
|
|
# === Common Config Snippets ===
|
|
- trigger: "}dckignore"
|
|
replace: |
|
|
.git
|
|
node_modules
|
|
.env
|
|
*.log
|
|
Dockerfile
|
|
.dockerignore
|
|
dist/
|
|
build/
|
|
|
|
- trigger: "}dckenv"
|
|
replace: "ENV $1$=$2$"
|
|
vars:
|
|
- name: key
|
|
type: choice
|
|
params:
|
|
values: ["$|$", "NODE_ENV", "PORT", "DB_HOST", "DEBUG"]
|
|
- name: value
|
|
type: choice
|
|
params:
|
|
values: ["production", "3000", "localhost", "true", ""]
|