docker:teslamate:tmbackupweb

teslamate backup web

Dockerfile:

FROM python:3.11-slim

# 安装 docker.io + gzip
RUN apt-get update && \
    apt-get install -y --no-install-recommends docker.io gzip && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app
RUN pip install --no-cache-dir flask

COPY app.py .
COPY templates ./templates

EXPOSE 5000
CMD ["python3", "app.py"]

创建本地镜像:

# 构建 amd64 + arm64 + arm/v7 三架构
docker buildx build \
  --platform=linux/amd64,linux/arm64,linux/arm/v7 \
  -t netfun2000/tmbackupweb:v1.0.0 .

推送到仓库:

docker buildx build \
  --platform=linux/amd64,linux/arm64,linux/arm/v7 \
  -t netfun2000/tmbackupweb:v1.0.0 \
  --push .

镜像本地保存:

buildx 多架构清单镜像不能直接 save,想导出离线包,分开构建单架构:

# 构建 amd64
docker buildx build --platform linux/amd64 -t netfun2000/tmbackupweb:v1.0.0-amd64 --load .

# 构建 arm64
docker buildx build --platform linux/arm64 -t netfun2000/tmbackupweb:v1.0.0-arm64 --load .

# 构建 arm/v7
docker buildx build --platform linux/arm/v7 -t netfun2000/tmbackupweb:v1.0.0-armv7 --load .

参数 –load:把镜像加载到本地镜像列表,支持 docker save 导出。

导出离线包示例:

docker save -o tmbackupweb-amd64.tar netfun2000/tmbackupweb:v1.0.0-amd64

其他机器导入:

docker load -i tmbackupweb-amd64.tar
version: "3.8"

services:
  tm-backup-web:
    build: .
    container_name: tm-backup-web
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - DATABASE_USER=${TM_DB_USER}
      - DATABASE_PASS=${TM_DB_PASS}
      - DATABASE_NAME=${TM_DB_NAME}
      - DATABASE_HOST=database
    volumes:
      # 关键:挂载宿主机docker socket,容器内可执行 docker compose
      - /var/run/docker.sock:/var/run/docker.sock
      # 映射当前目录,保证 docker compose 能找到原 docker-compose.yml
      - ./:/app
    # 关联teslamate所在网络(替换成你实际的网络名,默认一般为原项目默认网络)
    networks:
      - teslamate_net

# 填写你 Teslamate 所在的 Docker 网络名称
networks:
  teslamate_net:
    external: true
  • docker/teslamate/tmbackupweb.txt
  • 最后更改: 2026/06/08 11:36
  • admin