Skip to content

Commit 1fbffdd

Browse files
authored
Merge pull request #24114 from docker/agent/issue-23189
docs: address issue #23189
2 parents 2ca2f18 + 09b83b2 commit 1fbffdd

13 files changed

Lines changed: 145 additions & 37 deletions

File tree

content/guides/angular/configure-github-actions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ jobs:
158158
steps:
159159
# 1. Checkout source code
160160
- name: Checkout source code
161-
uses: actions/checkout@v4
161+
uses: actions/checkout@{{% param "checkout_action_version" %}}
162162
with:
163163
fetch-depth: 0
164164

@@ -168,7 +168,7 @@ jobs:
168168

169169
# 3. Cache Docker layers
170170
- name: Cache Docker layers
171-
uses: actions/cache@v4
171+
uses: actions/cache@{{% param "cache_action_version" %}}
172172
with:
173173
path: /tmp/.buildx-cache
174174
key: ${{ runner.os }}-buildx-${{ github.sha }}
@@ -177,7 +177,7 @@ jobs:
177177

178178
# 4. Cache npm dependencies
179179
- name: Cache npm dependencies
180-
uses: actions/cache@v4
180+
uses: actions/cache@{{% param "cache_action_version" %}}
181181
with:
182182
path: ~/.npm
183183
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

content/guides/gha.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ jobs:
103103
runs-on: ubuntu-latest
104104
steps:
105105
- name: Checkout
106-
uses: actions/checkout@v4
106+
uses: actions/checkout@{{% param "checkout_action_version" %}}
107107
- name: Extract Docker image metadata
108108
id: meta
109109
uses: docker/metadata-action@{{% param "metadata_action_version" %}}
@@ -216,7 +216,7 @@ jobs:
216216
runs-on: ubuntu-latest
217217
steps:
218218
- name: Checkout
219-
uses: actions/checkout@v4
219+
uses: actions/checkout@{{% param "checkout_action_version" %}}
220220
221221
- name: Extract Docker image metadata
222222
id: meta

content/guides/github-sonarqube-sandbox/customize.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ jobs:
6262
quality:
6363
runs-on: ubuntu-latest
6464
steps:
65-
- uses: actions/checkout@v4
66-
- uses: actions/setup-node@v4
65+
- uses: actions/checkout@{{% param "checkout_action_version" %}}
66+
- uses: actions/setup-node@v5
6767
with:
68-
node-version: "18"
68+
node-version: "24"
6969
- run: npm install
7070
- run: npx tsx 06-quality-gated-pr.ts
7171
env:
@@ -91,10 +91,10 @@ jobs:
9191
quality:
9292
runs-on: ubuntu-latest
9393
steps:
94-
- uses: actions/checkout@v4
95-
- uses: actions/setup-python@v5
94+
- uses: actions/checkout@{{% param "checkout_action_version" %}}
95+
- uses: actions/setup-python@v6
9696
with:
97-
python-version: "3.8"
97+
python-version: "3.14"
9898
- run: pip install e2b python-dotenv
9999
- run: python 06_quality_gated_pr.py
100100
env:

content/guides/nodejs/configure-github-actions.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,13 @@ jobs:
175175

176176
steps:
177177
- name: Checkout code
178-
uses: actions/checkout@v4
178+
uses: actions/checkout@{{% param "checkout_action_version" %}}
179179

180180
- name: Set up Docker Buildx
181181
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}
182182

183183
- name: Cache npm dependencies
184-
uses: actions/cache@v4
184+
uses: actions/cache@{{% param "cache_action_version" %}}
185185
with:
186186
path: ~/.npm
187187
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
@@ -220,13 +220,13 @@ jobs:
220220

221221
steps:
222222
- name: Checkout code
223-
uses: actions/checkout@v4
223+
uses: actions/checkout@{{% param "checkout_action_version" %}}
224224

225225
- name: Set up Docker Buildx
226226
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}
227227

228228
- name: Cache Docker layers
229-
uses: actions/cache@v4
229+
uses: actions/cache@{{% param "cache_action_version" %}}
230230
with:
231231
path: /tmp/.buildx-cache
232232
key: ${{ runner.os }}-buildx-${{ github.sha }}

content/guides/python/configure-github-actions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ jobs:
6363
lint-test:
6464
runs-on: ubuntu-latest
6565
steps:
66-
- uses: actions/checkout@v4
66+
- uses: actions/checkout@{{% param "checkout_action_version" %}}
6767

6868
- name: Set up Python
69-
uses: actions/setup-python@v5
69+
uses: actions/setup-python@v6
7070
with:
71-
python-version: '3.12'
71+
python-version: '3.14'
7272

7373
- name: Install dependencies
7474
run: |

content/guides/reactjs/configure-github-actions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ jobs:
158158
steps:
159159
# 1. Checkout source code
160160
- name: Checkout source code
161-
uses: actions/checkout@v4
161+
uses: actions/checkout@{{% param "checkout_action_version" %}}
162162
with:
163163
fetch-depth: 0 # Fetches full history for better caching/context
164164

@@ -168,15 +168,15 @@ jobs:
168168

169169
# 3. Cache Docker layers
170170
- name: Cache Docker layers
171-
uses: actions/cache@v4
171+
uses: actions/cache@{{% param "cache_action_version" %}}
172172
with:
173173
path: /tmp/.buildx-cache
174174
key: ${{ runner.os }}-buildx-${{ github.sha }}
175175
restore-keys: ${{ runner.os }}-buildx-
176176

177177
# 4. Cache npm dependencies
178178
- name: Cache npm dependencies
179-
uses: actions/cache@v4
179+
uses: actions/cache@{{% param "cache_action_version" %}}
180180
with:
181181
path: ~/.npm
182182
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

content/guides/vuejs/configure-github-actions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ jobs:
158158
steps:
159159
# 1. Checkout the codebase
160160
- name: Checkout Code
161-
uses: actions/checkout@v4
161+
uses: actions/checkout@{{% param "checkout_action_version" %}}
162162
with:
163163
fetch-depth: 0
164164

@@ -168,7 +168,7 @@ jobs:
168168

169169
# 3. Cache Docker layers
170170
- name: Cache Docker Layers
171-
uses: actions/cache@v4
171+
uses: actions/cache@{{% param "cache_action_version" %}}
172172
with:
173173
path: /tmp/.buildx-cache
174174
key: ${{ runner.os }}-buildx-${{ github.sha }}
@@ -177,7 +177,7 @@ jobs:
177177

178178
# 4. Cache npm dependencies
179179
- name: Cache npm Dependencies
180-
uses: actions/cache@v4
180+
uses: actions/cache@{{% param "cache_action_version" %}}
181181
with:
182182
path: ~/.npm
183183
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

content/manuals/build/ci/github-actions/cache.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ jobs:
246246
type=semver,pattern={{major}}.{{minor}}
247247
248248
- name: Go Build Cache for Docker
249-
uses: actions/cache@v4
249+
uses: actions/cache@{{% param "cache_action_version" %}}
250250
with:
251251
path: go-build-cache
252252
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}
@@ -303,7 +303,7 @@ jobs:
303303
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}
304304
305305
- name: Cache Docker layers
306-
uses: actions/cache@v4
306+
uses: actions/cache@{{% param "cache_action_version" %}}
307307
with:
308308
path: ${{ runner.temp }}/.buildx-cache
309309
key: ${{ runner.os }}-buildx-${{ github.sha }}

content/manuals/build/ci/github-actions/configure-builder.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ jobs:
266266
runs-on: ubuntu-latest
267267
steps:
268268
- name: Checkout
269-
uses: actions/checkout@v4
269+
uses: actions/checkout@{{% param "checkout_action_version" %}}
270270
271271
- name: Set up Docker Buildx
272272
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}

content/manuals/build/ci/github-actions/secrets.md

Lines changed: 113 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,119 @@ jobs:
5757
"github_token=${{ secrets.GITHUB_TOKEN }}"
5858
```
5959
60-
> [!NOTE]
61-
>
62-
> You can also expose a secret file to the build with the `secret-files` input:
63-
>
64-
> ```yaml
65-
> secret-files: |
66-
> "MY_SECRET=./secret.txt"
67-
> ```
60+
### Using secret files
61+
62+
The `secret-files` input lets you mount existing files as secrets in your build.
63+
This is useful when you need to use credential files that are generated during your workflow,
64+
or when you need to mount configuration files like `.npmrc` or `.pypirc` that are already in the expected format.
65+
66+
The key difference between `secrets` and `secret-files`:
67+
68+
- `secrets`: Pass secret values as strings (from environment variables or GitHub secrets)
69+
- `secret-files`: Mount existing files from the runner's filesystem
70+
71+
#### Example: Using .npmrc for private npm packages
72+
73+
If your build needs to install packages from a private npm registry,
74+
you can create an `.npmrc` file and mount it as a secret:
75+
76+
```yaml
77+
name: ci
78+
79+
on:
80+
push:
81+
82+
jobs:
83+
docker:
84+
runs-on: ubuntu-latest
85+
steps:
86+
- name: Checkout
87+
uses: actions/checkout@{{% param "checkout_action_version" %}}
88+
89+
- name: Set up Docker Buildx
90+
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}
91+
92+
- name: Create .npmrc file
93+
run: |
94+
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
95+
96+
- name: Build
97+
uses: docker/build-push-action@{{% param "build_push_action_version" %}}
98+
with:
99+
context: .
100+
secret-files: |
101+
npmrc=./.npmrc
102+
tags: user/app:latest
103+
```
104+
105+
In your Dockerfile, mount the secret file to the expected location:
106+
107+
```dockerfile
108+
# syntax=docker/dockerfile:1
109+
FROM node:20-alpine
110+
111+
WORKDIR /app
112+
113+
COPY package*.json ./
114+
115+
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc \
116+
npm ci
117+
118+
COPY . .
119+
120+
RUN npm run build
121+
```
122+
123+
#### Example: Using dynamically generated credentials
124+
125+
You can generate credential files from multiple secrets and mount them:
126+
127+
```yaml
128+
name: ci
129+
130+
on:
131+
push:
132+
133+
jobs:
134+
docker:
135+
runs-on: ubuntu-latest
136+
steps:
137+
- name: Checkout
138+
uses: actions/checkout@{{% param "checkout_action_version" %}}
139+
140+
- name: Set up Docker Buildx
141+
uses: docker/setup-buildx-action@{{% param "setup_buildx_action_version" %}}
142+
143+
- name: Create credentials file
144+
run: |
145+
cat <<EOF > aws-credentials
146+
[default]
147+
aws_access_key_id = ${{ secrets.AWS_ACCESS_KEY_ID }}
148+
aws_secret_access_key = ${{ secrets.AWS_SECRET_ACCESS_KEY }}
149+
EOF
150+
151+
- name: Build
152+
uses: docker/build-push-action@{{% param "build_push_action_version" %}}
153+
with:
154+
context: .
155+
secret-files: |
156+
aws=./aws-credentials
157+
tags: user/app:latest
158+
```
159+
160+
In your Dockerfile:
161+
162+
```dockerfile
163+
# syntax=docker/dockerfile:1
164+
FROM alpine
165+
166+
RUN apk add --no-cache aws-cli
167+
168+
RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \
169+
aws s3 cp s3://my-private-bucket/data.tar.gz /tmp/
170+
```
171+
172+
### Multi-line secrets
68173

69174
If you're using [GitHub secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
70175
and need to handle multi-line value, you will need to place the key-value pair

0 commit comments

Comments
 (0)