Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
donknap committed Nov 13, 2024
1 parent 9502596 commit 9b57fbf
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 62 deletions.
4 changes: 2 additions & 2 deletions docs/zh-cn/manual/compose/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![compose-create](https://cdn.w7.cc/dpanel/compose-create.png)

##### 站点标识
### 站点标识

用于标识 compose 创建后的项目名称,当同一个 compose.yaml 部署多个项目时,用站点标识进行区分。

Expand Down Expand Up @@ -38,7 +38,7 @@ https://ghp.ci/https://raw.githubusercontent.com/Cp0204/CasaOS-AppStore-Play/ref

每一个项目必须创建一个子目录,该目录的名称即为【站点标识】。子目录中包含 docker-compose.yaml docker-compose.yml compose.yaml compose.yml 文件。

#### 示例
##### 示例

目录结构如下:

Expand Down
2 changes: 1 addition & 1 deletion docs/zh-cn/manual/compose/env.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ services:

在部署 compose 任务的时候,也可以再次对环境变量进行修改。

![compose-env](https://cdn.w7.cc/dpanel/compose-env-2.png)
![compose-env](https://cdn.w7.cc/dpanel/compose-env-2.png?a=1)

#### 多 Docker 环境

Expand Down
6 changes: 4 additions & 2 deletions docs/zh-cn/manual/compose/image-pull.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

由于某些原因,在部署 compose 任务时可能无法拉取到镜像。

你可以通过配置【[仓库的加速地址](zh-cn/manual/image/registry?id=仓库加速)】,在 compose 的部署页面采用【一键拉取镜像】通过加速地址将镜像本地化,再进行部署。
你可以通过配置【[仓库的加速地址](zh-cn/manual/image/registry?id=仓库加速)】,在 compose 的部署页面开启【使用面板拉取镜像】通过加速地址将镜像本地化,再进行部署。

![compose-pull](https://cdn.w7.cc/dpanel/compose-pull.png)
否则在部署时会通过 docker compose 进行拉取镜像

![compose-pull](https://cdn.w7.cc/dpanel/compose-env-2.png?a=1)
37 changes: 22 additions & 15 deletions docs/zh-cn/manual/image/create-container.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
# 通过容器导出创建
# 通过容器构建

通过导出容器创建镜像可以让你从繁琐的编写 Dockerfile 文件中解脱出来。
### 保留容器原镜像的配置参数

你只需要正常配置系统、运行环境、添加代码就可以完成一个镜像的构建。
如果你仅仅是想将容器内某些更改后的文件或是一些新增的库转换为镜像

可以直接容器详情页面中的【另存为镜像】功能将容器保存为镜像。

![image-container-1](https://cdn.w7.cc/dpanel/image-container-2.png)

### 更改镜像配置参数

如果你有更改镜像配置参数的需求,就需要通过导出、导入容器 Tar 包的方式构建镜。

通过此方法,你可以通过新建类似于 alpine 、ubuntu 等基础镜像,直接在容器内部运行命令的方式构建镜像。\
此方法也会让你从繁琐的编写 Dockerfile 文件中解脱出来。你只需要正常配置系统、运行环境、添加代码就可以完成一个镜像的构建。

以这样的方式构建出一镜像与 Dockerfile 产生的镜像是一样的。

Expand All @@ -12,30 +23,26 @@ Dockerfile 是先记录你的命令,然后在构建的时候执行。而使用

#### 容器中的持久化存储

导出容器时,持久化的目录是无法被导出。
导出容器时,持久化的目录是无法被导出。多数情况下,此方法更适合于从基础镜像开始构建自己的镜像。

### CMD
#### 镜像配置

##### CMD

通过导出容器创建镜像时,必须指定启动 CMD 命令,否则通过该镜像创建容器时会无法正常启动。

### WorkDir
##### WorkDir

配置导入后的镜像工作目录,一般会指定到程序运行的目录,比如 /app、/home

### 暴露端口
##### 暴露端口

配置导入后的镜像需要向外部暴露访问的端口,一行配置一个端口。例如:9000

### 环境变量
##### 环境变量

配置导入后的镜像需要用户配置的环境变量,一般用于配置数据库、redis 之类的外部依赖。

### 存储卷目录
##### 存储卷目录

配置导入后的镜像需要持久化存储的目录,一般用于配置附件存储目录。

### 演示

> 演示项目:https://github.com/eshengsky/iBlog
<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=112523575624705&bvid=BV1keKZeSEm4&cid=500001564141937&p=1" scrolling="no" border="0" height="600" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
14 changes: 5 additions & 9 deletions docs/zh-cn/manual/image/create-dockerfile.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,20 @@
# 通过 Dockerfile 创建镜像

> 如果该文件中还依赖于其它配置文件,则需要采用 Zip 或是 Git 的形式进行构建
> 如果该文件中还依赖于其它配置文件,则需要采用 [Zip 或是 Git](/zh-cn/manual/image/create-zip) 的形式进行构建
通过单 Dockerfile 文件的形式构建镜像
通过单 Dockerfile 文件的形式可以快速构建自己的镜像

### 模板

> 基础镜像仓库:https://hub.docker.com/r/dpanel/base-image
为了方便你快速的构建一些常用的镜像。

DPanel 提供了 php、node、java、go、html 的基础的镜像。你可以在这些镜像的基础之上,构建出符合自己要求的镜像。

一般要遵循以下约定:

- 基础镜像采用 alpine 系统
- 持久存储位于 /app 目录,此目录下的文件都将会持久化存储
- 如果程序中需要对外暴露访问,一般是绑定到 80 端口,创建容器时再做端口映射
- 对于 java go node 需要启动脚本的程序,将启动脚本定义在 RUN_COMMAND

### 演示

基于php基础镜像,安装 pdo_pgsql 和 intl 扩展。

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=112516717612800&bvid=BV1duTLeSEn3&cid=500001562593429&p=1" scrolling="no" border="0" height="600" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
- 对于 java go node 需要启动脚本的程序,将启动脚本定义在 RUN_COMMAND
41 changes: 8 additions & 33 deletions docs/zh-cn/manual/image/create-zip.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,26 @@

通过 Zip 包和 Git 仓库构建镜像,原理是一样的。

区别在于 Git 可以更好的进行可持续化构建,而 Zip 包更适合简单快带的构建
区别在于 Git 可以更好的进行可持续化构建,而 Zip 包更适合单次简单快速的构建

### 示例

> https://github.com/donknap/dpanel-image
> https://github.com/donknap/dpanel.git
#### Dockerfile
你可以快速的通过 DPanel 的仓库构建 DPanel 镜像

```
FROM alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk add --no-cache --update nginx musl sqlite
WORKDIR /home
VOLUME [ "/dpanel" ]
ENV DOCKER_HOST=unix:///var/run/docker.sock
ENV DB_DATABASE=/dpanel/dpanel.db
EXPOSE 8806
EXPOSE 80
COPY ./src/server /home/server
COPY ./src/html /home/html
COPY ./src/nginx/default.conf /etc/nginx/http.d/default.conf
COPY ./src/entrypoint.sh /docker/entrypoint.sh
ENTRYPOINT [ "sh", "/docker/entrypoint.sh" ]
```
#### 目录中的 Dockerfile 说明

在 DPanel 构建仓库中,Dockerfile 位于根目录中,则构建目录为 ./ 。

引用配置文件时,也需要从 ./ 目录开始
配置文件在 docker 目录,构建时需要通过 ./docker/nginx/nginx.conf 来引用

假如你的 Dockerfile 位于某个子目录中,可以通过 **构建目录** 进行指定。
假如你需要构建 Lite 版,则通过 **Dockerfile文件位置** 配置 Dockerfile-lite

> 需要注意的是,即使 Dockerfile 位于子目录中,在使用 COPY ADD 命令时还是从根目录开始 \
> 构建目录仅可以指定 Dockerfile 的位置
### 持续构建 (Git Webhook 待支持)

使用 Git 方式进行构建镜像的时候,可以通过 webhook 进行自动触发构建(暂未支持)。

### 持续构建 (Git Webhook 待支持)

### 演示

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=112522626008832&bvid=BV19EKdemEwT&cid=500001563889069&p=1" scrolling="no" border="0" height="600" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
使用 Git 方式进行构建镜像的时候,可以通过 webhook 进行自动触发构建(暂未支持)。

0 comments on commit 9b57fbf

Please sign in to comment.