mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Add blank lines before headers
This commit is contained in:
@@ -36,6 +36,7 @@ ARG <参数名>[=<默认值>]
|
||||
#### 定义和使用
|
||||
|
||||
```docker
|
||||
|
||||
## 定义有默认值的 ARG
|
||||
|
||||
ARG NODE_VERSION=20
|
||||
@@ -49,6 +50,7 @@ RUN echo "Using Node.js $NODE_VERSION"
|
||||
#### 构建时覆盖
|
||||
|
||||
```bash
|
||||
|
||||
## 使用默认值
|
||||
|
||||
$ docker build -t myapp .
|
||||
@@ -65,6 +67,7 @@ $ docker build --build-arg NODE_VERSION=18 -t myapp .
|
||||
#### FROM 之前的 ARG
|
||||
|
||||
```docker
|
||||
|
||||
## FROM 之前的 ARG 只能用于 FROM 指令
|
||||
|
||||
ARG REGISTRY=docker.io
|
||||
@@ -96,12 +99,14 @@ RUN echo "Node version: $NODE_VERSION"
|
||||
ARG BASE_VERSION=alpine
|
||||
|
||||
FROM node:20-${BASE_VERSION} AS builder
|
||||
|
||||
## 需要重新声明
|
||||
|
||||
ARG NODE_VERSION=20
|
||||
RUN echo "Building with Node $NODE_VERSION"
|
||||
|
||||
FROM node:20-${BASE_VERSION}
|
||||
|
||||
## 每个阶段都需要重新声明
|
||||
|
||||
ARG NODE_VERSION=20
|
||||
@@ -155,6 +160,7 @@ RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc && \
|
||||
```
|
||||
|
||||
```bash
|
||||
|
||||
## 构建时传入 token
|
||||
|
||||
$ docker build --build-arg NPM_TOKEN=xxx .
|
||||
@@ -192,6 +198,7 @@ Docker 提供了一些预定义的 ARG,无需声明即可使用:
|
||||
| `FTP_PROXY` | FTP 代理 |
|
||||
|
||||
```bash
|
||||
|
||||
## 构建时使用代理
|
||||
|
||||
$ docker build --build-arg HTTP_PROXY=http://proxy:8080 .
|
||||
@@ -204,6 +211,7 @@ $ docker build --build-arg HTTP_PROXY=http://proxy:8080 .
|
||||
#### 1. 为 ARG 提供合理默认值
|
||||
|
||||
```docker
|
||||
|
||||
## ✅ 好:有默认值
|
||||
|
||||
ARG NODE_VERSION=20
|
||||
@@ -216,6 +224,7 @@ ARG NODE_VERSION
|
||||
#### 2. 不要用 ARG 存储敏感信息
|
||||
|
||||
```docker
|
||||
|
||||
## ❌ 错误:密码会被记录在镜像历史中
|
||||
|
||||
ARG DB_PASSWORD
|
||||
|
||||
Reference in New Issue
Block a user