feat: 添加对alpine3.20的支持并更新相关Dockerfile和脚本
This commit is contained in:
@@ -59,6 +59,7 @@ echo "Platform: $PLATFORM"
|
||||
if [ -n "$SYSTEM" ]; then
|
||||
case $SYSTEM in
|
||||
ubuntu22.04) ;;
|
||||
alpine3.20) ;;
|
||||
*)
|
||||
echo "unknown system image: $SYSTEM"
|
||||
exit 1
|
||||
|
||||
@@ -100,7 +100,8 @@ echo "===> vendor data copy to $output"
|
||||
|
||||
# =================== build docker image
|
||||
echo
|
||||
bash $BuildDir/build-docker.sh -v $VERSION -p amd64 -s ubuntu22.04
|
||||
# bash $BuildDir/build-docker.sh -v $VERSION -p amd64 -s ubuntu22.04
|
||||
bash $BuildDir/build-docker.sh -v $VERSION -p amd64 -s alpine3.20
|
||||
|
||||
# Compile the front-end and back-end and then package the version
|
||||
# bash pkg-docker.sh -v 2.2505.2
|
||||
|
||||
@@ -54,14 +54,13 @@ COPY --from=build-golang /web /usr/local/etc/omc/web
|
||||
|
||||
# 更新apt并安装必要工具
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
RUN apk add musl-dev libpcap-dev nginx tzdata && rm -rf /var/cache/apk/*
|
||||
RUN apk add musl-dev libpcap-dev bash nginx tzdata && rm -rf /var/cache/apk/*
|
||||
|
||||
# 设置时区和语言环境
|
||||
ENV LANG="en_US.UTF-8"
|
||||
ENV TZ="Asia/Shanghai"
|
||||
WORKDIR /usr/local/etc/omc
|
||||
|
||||
SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"]
|
||||
RUN chmod +x /usr/local/etc/omc/script/*.sh
|
||||
RUN /usr/local/etc/omc/script/postunpack.sh
|
||||
|
||||
@@ -69,13 +68,17 @@ EXPOSE 80 443 33030 33443 33033 33034 33060
|
||||
|
||||
CMD [ "/usr/local/etc/omc/script/entrypoint.sh" ]
|
||||
|
||||
# build 546 MB
|
||||
# docker docker build --platform linux/amd64 --build-arg TARGETARCH=amd64 --build-arg VERSION=2.2505.2 -t omc:r2.2505.2-ubuntu22.04-amd64 .
|
||||
# build 448MB
|
||||
# docker docker build --platform linux/amd64 --build-arg TARGETARCH=amd64 --build-arg VERSION=2.2505.2 -t omc:2.2505.2-alpine3.20-amd64 .
|
||||
|
||||
# service ssh start && service nginx start && /usr/local/bin/omc --env prod -c /usr/local/etc/omc/omc.yaml
|
||||
# docker run -it omc:r2.2505.2-ubuntu22.04-amd64 /bin/bash
|
||||
# docker run --network omcnet -it omc:2.2505.2-alpine3.20-amd64 /bin/bash
|
||||
|
||||
# docker run --privileged=true --restart=always -m 512M --name omc_2.2505.2 -d omc:r2.2505.2-ubuntu22.04-amd64
|
||||
# docker run --privileged=true --restart=always -m 512M \
|
||||
# -e TZ=Asia/Shanghai \
|
||||
# -e M_PARAM=lite \
|
||||
# -p 80:80 \
|
||||
# -p 443:443 \
|
||||
# --network omcnet \
|
||||
# --name omc \
|
||||
# -d omc:2.2505.2-alpine3.20-amd64
|
||||
|
||||
# docker rm -f omc_2.2505.2
|
||||
# docker run -it omc_2.2505.2 bash
|
||||
|
||||
@@ -68,7 +68,6 @@ ENV LANG="en_US.UTF-8"
|
||||
ENV TZ="Asia/Shanghai"
|
||||
WORKDIR /usr/local/etc/omc
|
||||
|
||||
SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"]
|
||||
RUN chmod +x /usr/local/etc/omc/script/*.sh
|
||||
RUN /usr/local/etc/omc/script/postunpack.sh
|
||||
|
||||
@@ -77,7 +76,7 @@ EXPOSE 80 443 33030 33443 33033 33034 33060
|
||||
CMD [ "/usr/local/etc/omc/script/entrypoint.sh" ]
|
||||
|
||||
# build 707MB
|
||||
# docker docker build --platform linux/amd64 --build-arg TARGETARCH=amd64 --build-arg VERSION=2.2505.2 -t omc:r2.2505.2-ubuntu22.04-amd64 .
|
||||
# docker docker build --platform linux/amd64 --build-arg TARGETARCH=amd64 --build-arg VERSION=2.2505.2 -t omc:2.2505.2-ubuntu22.04-amd64 .
|
||||
|
||||
# docker run --network omcnet -it omc:2.2505.2-ubuntu22.04-amd64 /bin/bash
|
||||
|
||||
|
||||
@@ -1,28 +1,14 @@
|
||||
# Docker 编译
|
||||
|
||||
编译目录内含 `omc_web` 和 `omc_api` 两个项目代码
|
||||
|
||||
将后端项目代码中的 `docker/Dockerfile` 文件移动到最外层目录下,`docker/omc`是内部文件挂载的文件资源。
|
||||
|
||||
编译目录结构
|
||||
|
||||
```text
|
||||
probject
|
||||
├── omc_web 目录-前端项目代码
|
||||
├── omc_api 目录-后端项目代码
|
||||
└── Dockerfile 文件-Docker编译需要
|
||||
```
|
||||
|
||||
内部文件资源
|
||||
|
||||
| 路径 | 说明 |
|
||||
| --------------------------- | -------------------------- |
|
||||
| /usr/local/etc/omc/static | 网管静态资源文件路径 |
|
||||
| /usr/local/etc/omc/upload | 网管上传文件资源路径 |
|
||||
| /usr/local/omc/static | 网管静态资源文件路径 |
|
||||
| /usr/local/omc/upload | 网管上传文件资源路径 |
|
||||
| /usr/local/etc/omc/omc.yaml | 网管配置文件 |
|
||||
| /usr/local/etc/omc | 网管与网元之间相关文件 |
|
||||
| /etc/nginx/cert | 网管前端 nginx 代理证书 |
|
||||
| /etc/nginx/nginx.conf | 网管前端 nginx 代理配置 |
|
||||
| /etc/nginx/nginx.conf | nginx 配置 |
|
||||
| /etc/nginx/conf.d/omc.conf | 网管前端 nginx 代理配置 |
|
||||
| /var/log | 网管相关日志输出 |
|
||||
| /tmp/omc | 存放从网元拉取到本地的文件 |
|
||||
|
||||
@@ -30,7 +16,6 @@ probject
|
||||
|
||||
| 端口 | 说明 |
|
||||
| ----- | ----------------------------- |
|
||||
| 22 | 网管 容器内部 SSH 服务 |
|
||||
| 80 | 网管 Nginx HTTP 服务 |
|
||||
| 443 | 网管 Nginx HTTP2 服务 |
|
||||
| 33030 | 网管后台 API HTTP 服务 |
|
||||
@@ -38,55 +23,12 @@ probject
|
||||
| 33033 | 网管信令跟踪 UDP 协议接收服务 |
|
||||
| 33060 | 网管性能分析监控 metrics 服务 |
|
||||
|
||||
## 编译
|
||||
容器变量
|
||||
|
||||
- `VERSION` 变量是后端程序打包版本号注入
|
||||
|
||||
```sh
|
||||
|
||||
docker build --build-arg VERSION="241212" -t omc:2.2412.1 .
|
||||
|
||||
```
|
||||
|
||||
## 部署
|
||||
|
||||
- `APPENV` 程序启动环境变量 local、prod (-e APPENV="local")
|
||||
|
||||
```sh
|
||||
|
||||
docker run -d \
|
||||
--privileged=true \
|
||||
--restart=always \
|
||||
-p 8822:22 \
|
||||
-p 8880:80 \
|
||||
-p 8884:443 \
|
||||
-p 8830:33030 \
|
||||
-p 8833:33033 \
|
||||
-p 8860:33060 \
|
||||
-v /home/manager/probject/omc_api/docker/omc:/usr/local/etc/omc \
|
||||
-v /home/manager/probject/omc_api/docker/omc/logs:/var/log \
|
||||
-v /home/manager/probject/omc_api/docker/omc/tmp:/tmp/omc \
|
||||
-v /home/manager/probject/omc_api/docker/omc/nginx/cert:/etc/nginx/cert \
|
||||
-v /home/manager/probject/omc_api/docker/omc/nginx/nginx.conf:/etc/nginx/nginx.conf \
|
||||
-e TZ="Asia/Shanghai" \
|
||||
-e APPENV="prod" \
|
||||
-m 512M \
|
||||
--name omc \
|
||||
omc:2.2412.1
|
||||
|
||||
```
|
||||
|
||||
## 调试
|
||||
|
||||
```sh
|
||||
|
||||
docker run -it omc:xxx sh
|
||||
|
||||
docker exec -it omc:xxx sh
|
||||
|
||||
service ssh start && service nginx start && /usr/local/bin/omc --env prod -c /usr/local/etc/omc/omc.yaml
|
||||
|
||||
```
|
||||
| 属性 | 说明 |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| M_PARAM | 服务模式(std、lite) std:d 标准版需外接 mariadb lite:轻量版内置 sqlite |
|
||||
| C_PARAM | 相关厂商定制 |
|
||||
|
||||
## 镜像导出导入
|
||||
|
||||
@@ -101,9 +43,7 @@ docker load -i omc_xx.tar
|
||||
|
||||
sudo bash omc-docker.sh install
|
||||
|
||||
mkdir omc-r2.2412.1-ub22-cloud
|
||||
tar -czvf omc-r2.2412.1-ub22-cloud.tgz omc-r2.2412.1-ub22-cloud/
|
||||
tar -xzvf omc-r2.2412.1-ub22-cloud.tgz
|
||||
tar -czvf omc-r2.2505.2-docker-alpine3.20-amd64.tar.gz omc-r2.2505.2-docker-alpine3.20-amd64/
|
||||
tar -xzvf omc-r2.2505.2-docker-alpine3.20-amd64.tar.gz
|
||||
|
||||
scp omc_2.2412.1.tar manager@192.168.9.59:/home/manager/omc-r2.2412.1-ub22-cloud/tar/
|
||||
```
|
||||
|
||||
@@ -28,8 +28,14 @@ sed -i 's/port: 33066/port: 3306/' "$BASE_DIR"/omc.yaml
|
||||
sed -i 's/host: "127.0.0.1" # Redis host$/host: "omc_keydb" # Redis host/' "$BASE_DIR"/omc.yaml
|
||||
|
||||
# Nginx config
|
||||
sed -i 's/#gzip on;/gzip on;/' /etc/nginx/nginx.conf
|
||||
sed -i '/^include \/etc\/nginx\/conf.d/s/^/# /' /etc/nginx/nginx.conf
|
||||
sed -i 's/include \/etc\/nginx\/http.d/include \/etc\/nginx\/conf.d/' /etc/nginx/nginx.conf
|
||||
|
||||
sed -i 's/# gzip_/gzip_/' /etc/nginx/nginx.conf
|
||||
sed -i 's/include \/etc\/nginx\/sites-enabled/# include \/etc\/nginx\/sites-enabled/' /etc/nginx/nginx.conf
|
||||
rm -rf /etc/nginx/conf.d && mkdir -p /etc/nginx/conf.d
|
||||
|
||||
cp -rf /usr/local/etc/omc/nginx/omc.conf /etc/nginx/conf.d
|
||||
touch /usr/local/etc/omc/web/config.js && echo 'sessionStorage.clear()' | tee /usr/local/etc/omc/web/config.js
|
||||
sed -i "s/33030;/$API_HTTP_PORT;/" /etc/nginx/conf.d/omc.conf
|
||||
|
||||
Reference in New Issue
Block a user