清理冗余文件
This commit is contained in:
parent
c1a6740e69
commit
45f89eb57e
|
|
@ -1,7 +1,6 @@
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
services:
|
services:
|
||||||
edge-proxy-dev:
|
edge-proxy-dev:
|
||||||
# 给他一个固定的名字
|
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: docker/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
|
|
@ -13,14 +12,15 @@ services:
|
||||||
- /dev/ttyS9:/dev/ttyS9
|
- /dev/ttyS9:/dev/ttyS9
|
||||||
|
|
||||||
group_add:
|
group_add:
|
||||||
- "20" # 例如: "20"
|
- "20"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
# 端口直接映射,无需错开
|
|
||||||
ports:
|
ports:
|
||||||
- "8888:8888"
|
- "8888:8888"
|
||||||
- "9999:9999"
|
- "9999:9999"
|
||||||
|
- "502:502"
|
||||||
command: sleep infinity
|
command: sleep infinity
|
||||||
|
|
||||||
mqtt-broker:
|
mqtt-broker:
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
# =================================================================
|
|
||||||
# Edge Proxy - Docker Compose for Development (V2)
|
|
||||||
# =================================================================
|
|
||||||
|
|
||||||
services:
|
|
||||||
edge-proxy-dev:
|
|
||||||
container_name: edge-proxy-dev
|
|
||||||
# 添加接口
|
|
||||||
devices:
|
|
||||||
- /dev/ttyS9:/dev/ttyS9
|
|
||||||
- /dev/ttyS7:/dev/ttyS7
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker/dev/Dockerfile
|
|
||||||
platform: linux/arm64
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- .:/app
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- "9999:9999"
|
|
||||||
- "8888:8888"
|
|
||||||
|
|
||||||
command: tail -f /dev/null
|
|
||||||
|
|
||||||
mqtt-broker:
|
|
||||||
# 使用官方的 Mosquitto 镜像,建议指定一个明确的版本
|
|
||||||
image: eclipse-mosquitto:2.0
|
|
||||||
container_name: mqtt-broker
|
|
||||||
# 设置容器在 Docker 守护进程启动或容器退出时自动重启
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
# 将主机的 1883 端口映射到容器的 1883 端口 (标准 MQTT)
|
|
||||||
# 如果您需要 WebSocket 支持,可以再加一行 "- 9001:9001"
|
|
||||||
- "1883:1883"
|
|
||||||
volumes:
|
|
||||||
# 将我们创建的配置文件、数据和日志目录挂载到容器内部的对应路径
|
|
||||||
# 这三行是实现配置、数据持久化的关键
|
|
||||||
- ./mosquitto/config:/mosquitto/config
|
|
||||||
- ./mosquitto/data:/mosquitto/data
|
|
||||||
- ./mosquitto/log:/mosquitto/log
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
# =================================================================
|
|
||||||
# Edge Proxy - Development Environment Dockerfile (V2)
|
|
||||||
# =================================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FROM arm64v8/ubuntu:22.04
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
COPY . /tmp/build-context
|
|
||||||
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y \
|
|
||||||
build-essential \
|
|
||||||
cmake \
|
|
||||||
git \
|
|
||||||
gdb \
|
|
||||||
vim \
|
|
||||||
libssl-dev \
|
|
||||||
# --- 新增依赖 ---
|
|
||||||
# spdlog 开发库
|
|
||||||
libspdlog-dev \
|
|
||||||
# Boost C++ 开发库 (这是一个元数据包,会安装所有Boost库)
|
|
||||||
# 提醒: libboost-all-dev 体积较大,对于生产环境镜像,
|
|
||||||
# 后续可以优化为只安装需要的特定模块 (例如 libboost-system-dev)。
|
|
||||||
# 但对于开发环境,它提供了最大的便利性。
|
|
||||||
libboost-all-dev && \
|
|
||||||
# Paho MQTT C++ 客户端库及其依赖
|
|
||||||
# --- 步骤 2: 编译并安装 Paho C 库 ---
|
|
||||||
echo "--- Building and installing Paho MQTT C Library ---" && \
|
|
||||||
cd /tmp/build-context/external/paho.mqtt.c && \
|
|
||||||
cmake -Bbuild -H. \
|
|
||||||
-DPAHO_WITH_SSL=ON \
|
|
||||||
-DPAHO_BUILD_SAMPLES=OFF \
|
|
||||||
-DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
|
||||||
\
|
|
||||||
# libpaho-mqttpp-dev \
|
|
||||||
echo "--- Building and installing Paho MQTT C++ Library ---" && \
|
|
||||||
cd /tmp/build-context/external/paho.mqtt.cpp && \
|
|
||||||
# 编译并安装
|
|
||||||
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
|
||||||
# 清理工作
|
|
||||||
ldconfig && \
|
|
||||||
rm -rf /tmp/build-context && \
|
|
||||||
# 清理apt缓存,减小镜像体积
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
# =================================================================
|
|
||||||
# Edge Proxy - Development Environment Dockerfile (V3 - Corrected)
|
|
||||||
# =================================================================
|
|
||||||
|
|
||||||
FROM arm64v8/ubuntu:22.04
|
|
||||||
|
|
||||||
# 1. 基础环境设置
|
|
||||||
# =================================
|
|
||||||
WORKDIR /app
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# 2. 用户和组创建
|
|
||||||
# 说明: 在这里创建所有需要的用户和组。
|
|
||||||
# 权限将在主机端设置,而不是在Dockerfile中,因为工作目录/app将被主机目录挂载覆盖。
|
|
||||||
# =================================
|
|
||||||
# =================================
|
|
||||||
RUN groupadd -r developers && \
|
|
||||||
# 创建 'dev' 用户并添加到 'developers' 和 'sudo' 组
|
|
||||||
useradd -ms /bin/bash -g developers -G sudo dev && \
|
|
||||||
# 添加用户到 'dialout' 组 (GID 20) 以便访问串口设备
|
|
||||||
# `|| true` 用于防止在 GID 已存在时出错
|
|
||||||
groupadd -g 20 dialout || true && \
|
|
||||||
usermod -a -G dialout dev && \
|
|
||||||
# 为 'dev' 用户设置无密码 sudo
|
|
||||||
echo "dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/dev-nopasswd && \
|
|
||||||
# 清理 apt 缓存
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN echo "umask 0002" > /etc/profile.d/99-shared-umask.sh && \
|
|
||||||
chmod +x /etc/profile.d/99-shared-umask.sh
|
|
||||||
|
|
||||||
# 3. 复制构建上下文并安装依赖
|
|
||||||
# 说明: 将整个项目复制到临时目录,用于编译 paho 等库。
|
|
||||||
# =================================
|
|
||||||
COPY . /tmp/build-context
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
build-essential \
|
|
||||||
cmake \
|
|
||||||
git \
|
|
||||||
gdb \
|
|
||||||
vim \
|
|
||||||
libssl-dev \
|
|
||||||
# spdlog 开发库
|
|
||||||
libspdlog-dev \
|
|
||||||
# Boost C++ 开发库 (元数据包)
|
|
||||||
libboost-all-dev && \
|
|
||||||
\
|
|
||||||
# --- 从源码编译并安装 Paho MQTT C 库 ---
|
|
||||||
echo "--- Building and installing Paho MQTT C Library ---" && \
|
|
||||||
cd /tmp/build-context/external/paho.mqtt.c && \
|
|
||||||
cmake -Bbuild -H. \
|
|
||||||
-DPAHO_WITH_SSL=ON \
|
|
||||||
-DPAHO_BUILD_SAMPLES=OFF \
|
|
||||||
-DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
|
||||||
\
|
|
||||||
# --- 从源码编译并安装 Paho MQTT C++ 库 ---
|
|
||||||
echo "--- Building and installing Paho MQTT C++ Library ---" && \
|
|
||||||
cd /tmp/build-context/external/paho.mqtt.cpp && \
|
|
||||||
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
|
||||||
\
|
|
||||||
# --- 清理工作 ---
|
|
||||||
# 刷新动态链接库缓存
|
|
||||||
ldconfig && \
|
|
||||||
# 删除临时的构建上下文,减小镜像体积
|
|
||||||
rm -rf /tmp/build-context && \
|
|
||||||
# 清理apt缓存,减小镜像体积
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
USER dev
|
|
||||||
# 4. (可选) 设置默认用户
|
|
||||||
# 说明: 如果不设置,默认是 root。如果希望容器启动后默认是某个用户,可以取消下面的注释。
|
|
||||||
# 但对于 VSCode attach 来说,它会使用 devcontainer.json 中指定的 remoteUser,所以此项不是必须的。
|
|
||||||
# USER forlinx
|
|
||||||
|
|
||||||
# CMD ["sleep", "infinity"]
|
|
||||||
Loading…
Reference in New Issue