@enjoys/context-engine 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/commands/adb.json +322 -0
- package/data/commands/alembic.json +301 -0
- package/data/commands/artisan.json +277 -0
- package/data/commands/atlas.json +426 -0
- package/data/commands/auth0.json +648 -0
- package/data/commands/bat.json +84 -0
- package/data/commands/bundle.json +321 -0
- package/data/commands/composer.json +507 -0
- package/data/commands/dart.json +216 -0
- package/data/commands/dbmate.json +257 -0
- package/data/commands/docker-compose.json +384 -0
- package/data/commands/drizzle-kit.json +217 -0
- package/data/commands/expo.json +65 -0
- package/data/commands/fastlane.json +243 -0
- package/data/commands/fd.json +86 -0
- package/data/commands/flutter.json +298 -0
- package/data/commands/flyway.json +261 -0
- package/data/commands/fzf.json +103 -0
- package/data/commands/gem.json +267 -0
- package/data/commands/jq.json +100 -0
- package/data/commands/k9s.json +62 -0
- package/data/commands/liquibase.json +399 -0
- package/data/commands/manifest.json +619 -0
- package/data/commands/minikube.json +60 -0
- package/data/commands/ng.json +64 -0
- package/data/commands/nuxt.json +60 -0
- package/data/commands/php.json +157 -0
- package/data/commands/pm2.json +259 -0
- package/data/commands/pod.json +175 -0
- package/data/commands/prisma.json +257 -0
- package/data/commands/rails.json +372 -0
- package/data/commands/rake.json +360 -0
- package/data/commands/react-native.json +57 -0
- package/data/commands/rg.json +103 -0
- package/data/commands/rspec.json +257 -0
- package/data/commands/ruby.json +108 -0
- package/data/commands/sequelize.json +342 -0
- package/data/commands/snyk.json +442 -0
- package/data/commands/sonar-scanner.json +219 -0
- package/data/commands/stripe.json +314 -0
- package/data/commands/symfony.json +449 -0
- package/data/commands/tmux.json +197 -0
- package/data/commands/trivy.json +367 -0
- package/data/commands/twilio.json +382 -0
- package/data/commands/typeorm.json +262 -0
- package/data/commands/vue.json +60 -0
- package/data/commands/wp.json +857 -0
- package/data/commands/xcodebuild.json +141 -0
- package/data/commands/yq.json +57 -0
- package/data/completion/bash.json +1184 -0
- package/data/completion/c.json +1067 -0
- package/data/completion/cpp.json +824 -0
- package/data/completion/csharp.json +860 -0
- package/data/completion/dockerfile.json +536 -0
- package/data/completion/go.json +1346 -0
- package/data/completion/html.json +806 -0
- package/data/completion/java.json +1112 -0
- package/data/completion/javascript.json +914 -0
- package/data/completion/lua.json +968 -0
- package/data/completion/php.json +1535 -0
- package/data/completion/python.json +1427 -0
- package/data/completion/ruby.json +1531 -0
- package/data/completion/rust.json +698 -0
- package/data/completion/sql.json +887 -0
- package/data/completion/toml.json +428 -0
- package/data/completion/typescript.json +338 -0
- package/data/completion/yaml.json +563 -0
- package/data/defination/bash.json +565 -0
- package/data/defination/c.json +865 -0
- package/data/defination/cpp.json +348 -0
- package/data/defination/csharp.json +144 -0
- package/data/defination/dockerfile.json +113 -0
- package/data/defination/go.json +561 -0
- package/data/defination/html.json +559 -0
- package/data/defination/java.json +184 -0
- package/data/defination/javascript.json +265 -0
- package/data/defination/lua.json +181 -0
- package/data/defination/php.json +726 -0
- package/data/defination/python.json +717 -0
- package/data/defination/ruby.json +670 -0
- package/data/defination/rust.json +207 -0
- package/data/defination/sql.json +473 -0
- package/data/defination/toml.json +251 -0
- package/data/defination/typescript.json +29 -0
- package/data/defination/yaml.json +197 -0
- package/data/hover/bash.json +245 -0
- package/data/hover/c.json +265 -0
- package/data/hover/cpp.json +210 -0
- package/data/hover/csharp.json +290 -0
- package/data/hover/dockerfile.json +145 -0
- package/data/hover/go.json +580 -0
- package/data/hover/html.json +250 -0
- package/data/hover/java.json +395 -0
- package/data/hover/javascript.json +330 -0
- package/data/hover/lua.json +265 -0
- package/data/hover/php.json +300 -0
- package/data/hover/python.json +380 -0
- package/data/hover/ruby.json +265 -0
- package/data/hover/rust.json +275 -0
- package/data/hover/sql.json +230 -0
- package/data/hover/toml.json +145 -0
- package/data/hover/typescript.json +120 -0
- package/data/hover/yaml.json +165 -0
- package/data/manifest.json +242 -0
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "dockerfile",
|
|
3
|
+
"hovers": {
|
|
4
|
+
"FROM": {
|
|
5
|
+
"contents": [
|
|
6
|
+
{ "value": "```dockerfile\nFROM [--platform=<platform>] <image>[:<tag>|@<digest>] [AS <name>]\n```\nInitialize a new build stage and set the base image for subsequent instructions. A valid Dockerfile must start with a FROM instruction (ARG is the only instruction allowed before FROM). Multi-stage builds use multiple FROM instructions — each begins a new stage and resets the build context. Use `AS <name>` to name a stage for `COPY --from` references." }
|
|
7
|
+
]
|
|
8
|
+
},
|
|
9
|
+
"RUN": {
|
|
10
|
+
"contents": [
|
|
11
|
+
{ "value": "```dockerfile\nRUN <command> # shell form\nRUN [\"executable\", \"param1\", \"param2\"] # exec form\n```\nExecute a command in a new layer on top of the current image and commit the result. The shell form runs via `/bin/sh -c` (or the `SHELL` override). The exec form (JSON array) runs the executable directly without shell processing. Each RUN instruction creates a new layer — combine commands with `&&` to reduce layers. BuildKit supports `--mount=type=cache|bind|secret|ssh|tmpfs` and `--network=default|none|host`." }
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"CMD": {
|
|
15
|
+
"contents": [
|
|
16
|
+
{ "value": "```dockerfile\nCMD [\"executable\", \"param1\", \"param2\"] # exec form (preferred)\nCMD [\"param1\", \"param2\"] # default params to ENTRYPOINT\nCMD command param1 param2 # shell form\n```\nProvide the default command for a running container. Only the **last** CMD in a Dockerfile takes effect. If the Dockerfile also has an ENTRYPOINT (exec form), CMD provides default arguments to it. CMD is overridden by any arguments passed to `docker run`." }
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"LABEL": {
|
|
20
|
+
"contents": [
|
|
21
|
+
{ "value": "```dockerfile\nLABEL <key>=<value> [<key>=<value> ...]\n```\nAdd metadata to an image as key-value pairs. Labels are inherited by child images. Use quotes for values with spaces. Combine labels in a single instruction to minimize layers. Standard OCI labels: `org.opencontainers.image.title`, `org.opencontainers.image.version`, `org.opencontainers.image.source`, `org.opencontainers.image.licenses`." }
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"MAINTAINER": {
|
|
25
|
+
"contents": [
|
|
26
|
+
{ "value": "```dockerfile\nMAINTAINER <name>\n```\n**Deprecated.** Sets the Author field of the generated image. Use `LABEL maintainer=\"name <email>\"` instead, which is more flexible and follows the label-based metadata convention." }
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"EXPOSE": {
|
|
30
|
+
"contents": [
|
|
31
|
+
{ "value": "```dockerfile\nEXPOSE <port>[/<protocol>] [...]\n```\nDeclare that the container listens on the specified port(s) at runtime. The default protocol is TCP; append `/udp` for UDP. **EXPOSE does not publish the port** — it serves as documentation. Use `-p` flag in `docker run` or `ports:` in Docker Compose to actually publish ports to the host." }
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"ENV": {
|
|
35
|
+
"contents": [
|
|
36
|
+
{ "value": "```dockerfile\nENV <key>=<value> [<key>=<value> ...]\n```\nSet environment variables that persist in both the build process and running containers. Variables set with ENV are available in subsequent Dockerfile instructions and at container runtime. Override at runtime with `docker run --env KEY=value`. For build-only variables, prefer `ARG`. Each ENV instruction creates a new layer." }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"ADD": {
|
|
40
|
+
"contents": [
|
|
41
|
+
{ "value": "```dockerfile\nADD [--chown=<user>:<group>] [--chmod=<perms>] [--checksum=<hash>] <src> ... <dest>\n```\nCopy files, directories, or remote URLs into the image. Unlike COPY, ADD has two extra features: automatic tar archive extraction (gzip, bzip2, xz) and fetching from remote URLs. For simple file copies, **prefer COPY** — it is more transparent. `--chown` sets ownership (Linux only). `--checksum` validates remote URL content." }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"COPY": {
|
|
45
|
+
"contents": [
|
|
46
|
+
{ "value": "```dockerfile\nCOPY [--from=<name|index>] [--chown=<user>:<group>] [--chmod=<perms>] [--link] <src> ... <dest>\n```\nCopy files or directories from the build context into the image filesystem. Preferred over ADD for straightforward copies. `--from=<stage>` copies from a named build stage or external image. `--chown` sets file ownership (Linux only). `--link` creates an independent layer for better cache reuse and parallel extraction. Paths are relative to the build context." }
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"ENTRYPOINT": {
|
|
50
|
+
"contents": [
|
|
51
|
+
{ "value": "```dockerfile\nENTRYPOINT [\"executable\", \"param1\", \"param2\"] # exec form (preferred)\nENTRYPOINT command param1 param2 # shell form\n```\nConfigure the container to run as an executable. Arguments from `CMD` or `docker run` are appended after the exec-form ENTRYPOINT. Only the last ENTRYPOINT takes effect. The exec form is preferred because it receives Unix signals directly (important for graceful shutdown). The shell form wraps in `/bin/sh -c`, which does not forward signals to the child process." }
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"VOLUME": {
|
|
55
|
+
"contents": [
|
|
56
|
+
{ "value": "```dockerfile\nVOLUME [\"/path\"] | VOLUME /path1 /path2\n```\nCreate a mount point and mark it as holding externally mounted volumes. Data in a VOLUME persists beyond the container lifecycle. Any changes made to the volume directory **after** the VOLUME instruction during the build are discarded. Use named volumes or bind mounts at runtime for reliable persistence." }
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"USER": {
|
|
60
|
+
"contents": [
|
|
61
|
+
{ "value": "```dockerfile\nUSER <user>[:<group>]\nUSER <UID>[:<GID>]\n```\nSet the user (and optionally group) for all subsequent `RUN`, `CMD`, and `ENTRYPOINT` instructions. The user must already exist in the image. Running as non-root is a **security best practice**. Override at runtime with `docker run --user`. Create users with `RUN adduser` or `RUN useradd` before the USER instruction." }
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"WORKDIR": {
|
|
65
|
+
"contents": [
|
|
66
|
+
{ "value": "```dockerfile\nWORKDIR /path/to/workdir\n```\nSet the working directory for subsequent `RUN`, `CMD`, `ENTRYPOINT`, `COPY`, and `ADD` instructions. The directory is created automatically if it doesn't exist. Can be set multiple times; relative paths resolve against the previous WORKDIR. Use absolute paths for clarity. Environment variables (from `ENV`) can be used in the path." }
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"ARG": {
|
|
70
|
+
"contents": [
|
|
71
|
+
{ "value": "```dockerfile\nARG <name>[=<default value>]\n```\nDefine a build-time variable passed via `docker build --build-arg <name>=<value>`. Unlike ENV, ARG values are **not** persisted in the final image or available at container runtime. ARG before FROM applies only to the FROM instruction. ARG after FROM is scoped to the current build stage. Predefined ARGs: `HTTP_PROXY`, `HTTPS_PROXY`, `FTP_PROXY`, `NO_PROXY`, `BUILDPLATFORM`, `TARGETPLATFORM`, `TARGETOS`, `TARGETARCH`." }
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"ONBUILD": {
|
|
75
|
+
"contents": [
|
|
76
|
+
{ "value": "```dockerfile\nONBUILD <INSTRUCTION>\n```\nRegister a trigger instruction that executes when this image is used as the base for another build. The trigger fires right after the child's FROM instruction. Useful for creating reusable base images (e.g., `ONBUILD COPY . /app`, `ONBUILD RUN npm install`). `ONBUILD ONBUILD` is not permitted. Triggers are not inherited beyond one level." }
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"STOPSIGNAL": {
|
|
80
|
+
"contents": [
|
|
81
|
+
{ "value": "```dockerfile\nSTOPSIGNAL <signal>\n```\nSet the system call signal that will be sent to the container's PID 1 process to stop it. Accepts signal names (`SIGTERM`, `SIGKILL`, `SIGQUIT`, `SIGINT`) or unsigned numbers (e.g., `9`). Default is `SIGTERM`. Override at runtime with `docker run --stop-signal`. Ensure your application handles the chosen signal for graceful shutdown." }
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"HEALTHCHECK": {
|
|
85
|
+
"contents": [
|
|
86
|
+
{ "value": "```dockerfile\nHEALTHCHECK [OPTIONS] CMD <command>\nHEALTHCHECK NONE\n```\nDefine how Docker tests whether the container is healthy. Options:\n- `--interval=DURATION` — time between checks (default 30s)\n- `--timeout=DURATION` — max time for a check to complete (default 30s)\n- `--start-period=DURATION` — grace period during startup (default 0s)\n- `--retries=N` — consecutive failures needed to mark unhealthy (default 3)\n\nThe command's exit code determines status: `0` = healthy, `1` = unhealthy. Only the last HEALTHCHECK takes effect. Use `HEALTHCHECK NONE` to disable a health check inherited from a base image." }
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"SHELL": {
|
|
90
|
+
"contents": [
|
|
91
|
+
{ "value": "```dockerfile\nSHELL [\"executable\", \"parameters\"]\n```\nOverride the default shell for the shell form of `RUN`, `CMD`, and `ENTRYPOINT`. The default on Linux is `[\"/bin/sh\", \"-c\"]`; on Windows it is `[\"cmd\", \"/S\", \"/C\"]`. SHELL can appear multiple times — each occurrence affects subsequent shell-form instructions. Common use cases: switching to bash (`SHELL [\"/bin/bash\", \"-c\"]`) or PowerShell on Windows." }
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"AS": {
|
|
95
|
+
"contents": [
|
|
96
|
+
{ "value": "```dockerfile\nFROM <image> AS <name>\n```\nName a build stage in a multi-stage build. The name can be referenced by `COPY --from=<name>` or `docker build --target=<name>`. Stage names are case-insensitive and must be unique within the Dockerfile. Naming stages makes Dockerfiles more readable and allows building specific stages with `--target`." }
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"COPY --from": {
|
|
100
|
+
"contents": [
|
|
101
|
+
{ "value": "```dockerfile\nCOPY --from=<name|index> <src> <dest>\n```\nCopy files from a named build stage (using `AS <name>`) or by stage index (0-based). Can also reference an external image: `COPY --from=nginx:alpine /etc/nginx/nginx.conf /etc/nginx/`. This is the core mechanism for multi-stage builds — build in one stage, copy artifacts to the final image." }
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
"--mount=type=cache": {
|
|
105
|
+
"contents": [
|
|
106
|
+
{ "value": "```dockerfile\nRUN --mount=type=cache,target=<path>[,id=<id>][,sharing=<shared|private|locked>] <command>\n```\nMount a persistent cache directory that survives across builds. Ideal for package manager caches:\n- APT: `--mount=type=cache,target=/var/cache/apt`\n- pip: `--mount=type=cache,target=/root/.cache/pip`\n- Go: `--mount=type=cache,target=/root/.cache/go-build`\n- npm: `--mount=type=cache,target=/root/.npm`\n\nRequires BuildKit (`DOCKER_BUILDKIT=1`)." }
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"--mount=type=secret": {
|
|
110
|
+
"contents": [
|
|
111
|
+
{ "value": "```dockerfile\nRUN --mount=type=secret,id=<id>[,target=<path>][,required=<bool>][,mode=<mode>][,uid=<uid>][,gid=<gid>] <command>\n```\nMount a secret file that is available during the build step but **not** stored in the final image or any layer. Build with: `docker build --secret id=mysecret,src=secret.txt .`. The secret is available at `/run/secrets/<id>` by default. Use for API keys, credentials, and private SSH keys." }
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"--mount=type=ssh": {
|
|
115
|
+
"contents": [
|
|
116
|
+
{ "value": "```dockerfile\nRUN --mount=type=ssh <command>\n```\nForward the host's SSH agent socket into the build container, allowing access to private Git repositories without embedding SSH keys in the image. Build with: `docker build --ssh default .`. Requires BuildKit." }
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"--platform": {
|
|
120
|
+
"contents": [
|
|
121
|
+
{ "value": "```dockerfile\nFROM --platform=<platform> <image>\n```\nSpecify the platform for the base image in multi-platform builds. Common values: `linux/amd64`, `linux/arm64`, `linux/arm/v7`. Use `$BUILDPLATFORM` for the build machine's platform and `$TARGETPLATFORM` for the target. Enables cross-compilation patterns in multi-stage builds." }
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"multi-stage build": {
|
|
125
|
+
"contents": [
|
|
126
|
+
{ "value": "**Multi-stage builds** use multiple `FROM` instructions in a single Dockerfile. Each FROM begins a new stage. Stages can be named with `AS <name>`. Use `COPY --from=<name>` to copy build artifacts from one stage to another.\n\nBenefits:\n- Dramatically smaller final images (no build tools in production)\n- Single Dockerfile for build and runtime\n- Parallel stage execution with BuildKit\n- Selective stage building with `--target`\n\n```dockerfile\nFROM golang:1.22 AS builder\nRUN go build -o /app\n\nFROM alpine:3.19\nCOPY --from=builder /app /app\n```" }
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
".dockerignore": {
|
|
130
|
+
"contents": [
|
|
131
|
+
{ "value": "**`.dockerignore`** excludes files from the build context sent to the Docker daemon. Follows `.gitignore` syntax. Place it in the build context root.\n\n```\nnode_modules\n.git\n.env\n*.md\nDockerfile\n.dockerignore\ndist\ncoverage\n__pycache__\n*.pyc\n.venv\n```\n\nReduces build context size, speeds up builds, and prevents sensitive files from being included in images." }
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"BuildKit": {
|
|
135
|
+
"contents": [
|
|
136
|
+
{ "value": "**BuildKit** is Docker's next-generation build engine (default since Docker 23.0). Enable with `DOCKER_BUILDKIT=1` for older versions.\n\nFeatures:\n- Parallel stage execution in multi-stage builds\n- `RUN --mount` (cache, secret, ssh, bind, tmpfs)\n- `COPY --link` for independent layers\n- Better caching and faster builds\n- Build secrets that don't leak into image layers\n- Syntax directives: `# syntax=docker/dockerfile:1`" }
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
"scratch": {
|
|
140
|
+
"contents": [
|
|
141
|
+
{ "value": "```dockerfile\nFROM scratch\n```\n`scratch` is an explicitly empty image — the most minimal base image possible. Contains no files, no shell, no libraries. Use for:\n- Statically compiled Go binaries (`CGO_ENABLED=0`)\n- Statically linked Rust binaries\n- Minimal containers with single-binary applications\n\nYou must COPY everything the binary needs, including CA certificates if making HTTPS requests:\n```dockerfile\nCOPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/\n```" }
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|