Compare commits

...

2 Commits

Author SHA1 Message Date
小弟调调
5a4f7cdf37 doc: format markdown. 2025-08-13 23:17:02 +08:00
小弟调调
6687a0989a doc: update docs/docker-compose.md #997 2025-08-13 23:17:02 +08:00
5 changed files with 33 additions and 30 deletions

View File

@@ -8,17 +8,17 @@ Docker Compose 备忘清单
### Docker Compose 是什么?
- `Docker-compsoe` 是一个开源项目,用于定义和运行多容器 `Docker` 应用程序的工具。由 `Docker` 社区维护
- 通过`YAML` 文件配置应用程序的服务,以便可以使用一命令启动、停止重启整个应用程序
- **Docker Compose** 是由 [Docker](./docker.md) 社区维护的开源工具,用于定义和运行多容器应用
- 通过[YAML](./yaml.md) 文件配置服务,可用一命令启动、停止重启整个应用。
- [Docker Compose 开源地址](https://github.com/docker/compose)
- [Docker Compose 发行地址](https://github.com/docker/compose/releases) _github.com_
### 基本概念
- **服务 (services):** 一个服务指的是一个容器,即一个应用程序的一个实例。
- **容器 (container):** `Docker` 容器,其中运行着应用程序的一个实例。
- **镜像 (image):** `Docker` 镜像,用于创建容器的模板。
- **Docker-Compose 文件:** 一个 `YAML` 文件,描述了应用程序的各个服务以及它们之间的关系、配置等信息。
- **容器 (container):** [Docker](./docker.md) 容器,其中运行着应用程序的一个实例。
- **镜像 (image):** [Docker](./docker.md) 镜像,用于创建容器的模板。
- **Docker-Compose 文件:** 一个 [YAML](./yaml.md) 文件,描述了应用程序的各个服务以及它们之间的关系、配置等信息。
### Docker-Compose 文件结构
@@ -30,13 +30,12 @@ Docker Compose 备忘清单
### 安装
<!--rehype:wrap-class=row-span-2-->
Docker 20.10 之后Docker CLI 支持 插件机制Compose 也被官方迁移为 CLI 插件。
命令也尽量使用官方推荐的 `docker compose` (**中间用空格,没有横线**)。建议尽早迁移,如果旧项目需要兼容 `docker-compose`,可单独安装 `docker-compose-plugin` 插件,或者是用软链接。
Docker 20.10 起,CLI 支持插件机制,官方已将 Compose 迁移为 CLI 插件。推荐使用 `docker compose`(空格,无横线),旧项目如需兼容 `docker-compose` 可安装 `docker-compose-plugin` 或使用软链接。
```bash
sudo ln -s /usr/lib/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
```
<!--rehype:className=wrap-text-->
对于 Ubuntu 和 Debian运行
@@ -168,12 +167,13 @@ docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.P
```bash
docker compose up -d --remove-orphans --pull always --force-recreate
```
| 参数 | 说明|
|-----|----|
| -d / --detach | 后台运行容器。|
| --remove-orphans | 删除孤儿容器和网络配置。|
| --pull always | 每次启动前都从远程仓库拉取最新镜像,确保使用最新镜像,而不是本地缓存。还可以用--pull missing只拉不存在的镜像或 --pull never不拉取。|
| --force-recreate | 强制重新创建容器,即使配置或镜像没有变化。|
| `-d / --detach` | 后台运行容器。|
| `--remove-orphans` | 删除孤儿容器和网络配置。|
| `--pull always` | 每次启动前都从远程仓库拉取最新镜像,确保使用最新镜像,而不是本地缓存。还可以用--pull missing只拉不存在的镜像或 --pull never不拉取。|
| `--force-recreate` | 强制重新创建容器,即使配置或镜像没有变化。|
<!--rehype:className=left-align-->
Docker Compose 配置
@@ -182,7 +182,8 @@ Docker Compose 配置
### 示例配置文件
<!--rehype:wrap-class=col-span-2-->
`docker-compose` 的配置文件是一个 `YAML` 文件,用于定义和运行多容器 Docker 应用程序。通常命名为 `docker-compose.yml` (现在新的版本建议`compose.yaml` 代替之前的 `docker-compose.yaml`) ,它使用单一的 YAML 文件来定义多个容器的集合,以及它们之间的依赖关系和服务。以下是一份 `docker-compose.yml` 文件的配置模板,包含了常用配置项和解释:
`docker-compose` 使用 [YAML](./yaml.md) 文件定义和运行多容器应用,通常命名为 `docker-compose.yml`(新版本建议用 `compose.yaml`)。
该文件集中描述多个容器的服务、依赖关系等。下面是一个包含常用配置项和说明的模板:
```yml
name: myapp

View File

@@ -1397,6 +1397,7 @@ Yoki.sound() # => Woof!
### 属性封装与访问控制
实现计算属性、只读属性和验证逻辑。
```python
class Person:
def __init__(self, age):
@@ -1840,9 +1841,11 @@ else: # try/except 块的可选子句。 必须遵循除块
finally: # 在所有情况下执行
print("我们可以在这里清理资源")
```
### 高阶函数map
将一个函数应用到可迭代对象(如列表)的每个元素上,并返回一个新的迭代器。
```python
def square(x):
return x ** 2
@@ -1858,6 +1861,7 @@ print(list(result)) # 输出: [1, 4, 9, 16]
### 高阶函数sorted
对可迭代对象进行排序,返回一个新的已排序列表(原对象不变)
```python
# 按照分数排序
users = [
@@ -1883,6 +1887,7 @@ for user in sorted_users:
### 高阶函数reduce
将一个二元函数(接受两个参数的函数)累积应用到可迭代对象的元素上,最终合并为单个值
```python
from functools import reduce
@@ -1896,9 +1901,11 @@ result = reduce(multiply, numbers)
print(result) # 输出: 1202×3×4×5=120
```
### 偏函数
固定原函数的某些参数,生成新函数
```python
from functools import partial
@@ -1914,7 +1921,6 @@ print(square(5)) # 输出: 25 (5²)
print(square(10)) # 输出: 100 (10²)
```
### pyenv & pipenv
<!--rehype:wrap-class=col-span-3-->

View File

@@ -296,7 +296,6 @@ $ ssh -L 4000:192.168.1.10:80 user@example.com -N
其中 `-N` 表示不执行远程命令,只是建立隧道。
### 远程端口转发
<!--rehype:wrap-class=col-span-3-->

View File

@@ -2027,12 +2027,11 @@ print(intStorage.retrieve() ?? "Empty")
`swift-inspect` | 模块/符号分析工具 | 检查模块结构/调试工具输出
<!--rehype:className=show-header left-align-->
### swift — 脚本执行 & REPL
<!--rehype:wrap-class=row-span-3-->
命令 | 说明
:-- | :--
:-- | :--
`swift` | 启动交互式环境REPL
`swift my_script.swift` | 运行 Swift 脚本文件
`swift build` | 使用 SwiftPM 编译项目
@@ -2068,7 +2067,7 @@ $ swift package dump-package
<!--rehype:wrap-class=col-span-2-->
命令 | 说明
:-- | :--
:-- | :--
`swiftc main.swift` | 编译为默认名 `main` 的可执行文件
`swiftc main.swift -o myapp` | 编译为 `myapp` 可执行文件
`swiftc -c Foo.swift` | 编译为中间的 `.o` 文件
@@ -2080,12 +2079,11 @@ $ swift package dump-package
`swiftc -emit-object Foo.swift` | 输出目标文件 `.o`
<!--rehype:className=show-header left-align-->
### swift-inspect
<!--rehype:wrap-class=col-span-2-->
命令 | 说明
:-- | :--
:-- | :--
`swift-inspect MyApp` | 分析一个编译产物(如 `.app``.dylib`
`swift-inspect --symbols MyModule.swiftmodule` | 查看模块的符号信息
`swift-inspect --help` | 查看所有可用选项

View File

@@ -292,14 +292,14 @@ ClipboardSetText("text")
### Windows 打包
<!--rehype:wrap-class=col-span-2 row-span-2-->
#### <red>■</red> 默认生成: `.exe` 可执行文件
#### <red>■</red> 默认生成: `.exe` 可执行文件
<!--rehype:style=text-align: left;font-weight: bold;-->
```bash
$ wails build -platform windows/amd64
```
#### <red>■</red> 生成 NSIS 安装程序:
#### <red>■</red> 生成 NSIS 安装程序
<!--rehype:style=text-align: left;font-weight: bold;-->
**前提条件**: 需要预先安装 [NSIS (Nullsoft Scriptable Install System)](https://nsis.sourceforge.io/Download)。
@@ -320,7 +320,7 @@ $ wails build -platform windows/amd64
$ wails build -platform windows/amd64 -nsis
```
#### <red>■</red> 处理 WebView2 依赖:
#### <red>■</red> 处理 WebView2 依赖
<!--rehype:style=text-align: left;font-weight: bold;-->
`download`: 提示用户下载 WebView2。
@@ -328,11 +328,13 @@ $ wails build -platform windows/amd64 -nsis
```bash
$ wails build -platform windows/amd64 -webview2 download
```
`embed`: 将 WebView2 嵌入到应用中(推荐)。
```bash
$ wails build -platform windows/amd64 -webview2 embed
```
`browser`: 在浏览器中打开下载页面。
```bash
@@ -341,20 +343,19 @@ $ wails build -platform windows/amd64 -webview2 browser
### macOS 打包
#### <red>■</red> 默认生成: `.app` 应用程序包。
#### <red>■</red> 默认生成: `.app` 应用程序包
<!--rehype:style=text-align: left;font-weight: bold;-->
```bash
$ wails build -platform darwin/amd64
```
#### <red>■</red> 代码签名与公证:
#### <red>■</red> 代码签名与公证
<!--rehype:style=text-align: left;font-weight: bold;-->
需要通过 Apple 开发者账户进行 **代码签名** 和 **公证** 才能分发。
#### <red>■</red> 跳过打包成 `.app` 步骤:
#### <red>■</red> 跳过打包成 `.app` 步骤
<!--rehype:style=text-align: left;font-weight: bold;-->
```bash
@@ -389,7 +390,7 @@ $ wails build -platform linux/amd64 -rpm
#### AppImage 支持
Wails 不直接内置对 AppImage 的支持,但可以使用外部工具手动创建。使用 `appimagetool`:
Wails 不直接内置对 AppImage 的支持,但可以使用外部工具手动创建。使用 `appimagetool`:
```shell
appimagetool ./your-app-dir
@@ -474,7 +475,6 @@ func (a *App) LongRunningTask(ctx context.Context) error {
- **Go 部分**: 使用 `wails dev -debug` 启动并附加您的 Go 调试器。
- **前端部分**: 在 `wails dev` 模式下,右键点击应用,选择“检查”打开浏览器开发者工具。
### 性能优化
#### 构建优化
@@ -528,7 +528,6 @@ $ wails dev
$ wails dev -frontenddevserverurl http://localhost:3000
```
参考资料
---