跳至主要內容

DockerCompose

知识库容器技术DockerharborDocker大约 3 分钟

安装wordpress

官方地址:https://cn.wordpress.org/open in new window

WordPress是一款能让您建立出色网站、博客或应用的开源软件。

cat > docker-compose.wordpress.yml << EOF
version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
EOF

# 后台运行
docker-compose -f docker-compose.wordpress.yml up -d
# 停止并删除服务
docker-compose -f docker-compose.wordpress.yml down 
# 访问 http://192.16.18.151:8000

Immich(照片服务器)

项目地址:https://github.com/immich-app/immichopen in new window

https://immich.app/docs/install/docker-composeopen in new window

Immich 是一个自托管的照片和视频备份解决方案

特性

  • 上传和查看视频和照片
  • 打开应用程序时自动备份
  • 将照片和视频下载到本地设备
  • 多用户支持
  • 共享相册
  • 支持 RAW(HEIC、HEIF、DNG、Apple ProRaw)
  • 元数据视图(EXIF、地图)
  • 按元数据、对象和图像标签搜索
  • 管理功能(用户管理)
  • 后台备份

技术栈

  • NestJs - 应用程序的后端
  • SvelteKit - 应用程序的 Web 前端
  • PostgreSQL - 应用程序的主数据库
  • Redis - 用于在 docker 实例和后台任务消息队列之间共享 websocket 实例
  • Nginx - 负载均衡和优化的文件上传
  • TensorFlow - 对象检测 (COCO SSD) 和图像分类 (ImageNet)
# 获取 yml 文件
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# 获取 .env 文件
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
# 请根据官方文档修改配置文件,也可直接部署
## https://immich.app/docs/install/docker-compose
docker-compose -f docker-compose.yml up -d

# 启动成功后,访问本机的 2283 端口即可。
## 修改了以下配置:
## 1、将 redis 模块取消了,替换为自用的 redis
## 2、修改了访问端口
## 3、一些路径的修改
version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: altran1502/immich-server:release
    entrypoint: ["/bin/sh", "./start-server.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - /data/docker-data/immich/.env
    environment:
      - NODE_ENV=production
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: altran1502/immich-server:release
    entrypoint: ["/bin/sh", "./start-microservices.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - /data/docker-data/immich/.env
    environment:
      - NODE_ENV=production
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: altran1502/immich-machine-learning:release
    entrypoint: ["/bin/sh", "./entrypoint.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - /data/docker-data/immich/.env
    environment:
      - NODE_ENV=production
    depends_on:
      - database
    restart: always

  immich-web:
    container_name: immich_web
    image: altran1502/immich-web:release
    entrypoint: ["/bin/sh", "./entrypoint.sh"]
    env_file:
      - /data/docker-data/immich/.env
    restart: always

    #redis:
    #container_name: immich_redis
    #image: redis:6.2
    #restart: always

  database:
    container_name: immich_postgres
    image: postgres:14
    env_file:
      - /data/docker-data/immich/.env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      PG_DATA: /var/lib/postgresql/data
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

  immich-proxy:
    container_name: immich_proxy
    image: altran1502/immich-proxy:release
    environment:
      # Make sure these values get passed through from the env file
      - IMMICH_SERVER_URL
      - IMMICH_WEB_URL
    ports:
      - 62283:8080
    logging:
      driver: none
    depends_on:
      - immich-server
    restart: always

volumes:
  pgdata:

Matomo

多合一网络分析平台

Matomo(以前称为 Piwik)是领先的开源分析平台,可以让您轻松地从访问者那里获得您想要的信息。例如查看您的网站访问者来自何处、正在查看哪些页面、单击了哪些链接以及其他各种有用的信息。

cat > docker-compose.yml <<EOF
version: '3'

services:
  mariadb:
    image: mariadb:10.6
    container_name: matomo_db
    restart: unless-stopped
    volumes:
      - ./data:/var/lib/mysql
    environment:
      - MARIADB_ROOT_PASSWORD=123456
      - MARIADB_DATABASE=matomo
      - MARIADB_USER=matomo
      - MARIADB_PASSWORD=123456
      
  matomo:
    image: matomo:4.13
    container_name: matomo_web
    restart: unless-stopped
    ports:
      - 7880:80
    volumes:
      - ./web:/var/www/html
    environment:
      - MATOMO_DATABASE_HOST=mariadb
      - MATOMO_DATABASE_ADAPTER=mysql
      - MATOMO_DATABASE_TABLES_PREFIX=ma_
      - MATOMO_DATABASE_USERNAME=matomo
      - MATOMO_DATABASE_PASSWORD=123456
      - MATOMO_DATABASE_DBNAME=matomo
    depends_on:
      - mariadb
EOF

# 新建文件夹 matomo 和 子目录
mkdir -p /volume1/docker/matomo/{data,web}
# 进入 matomo 目录
cd /volume1/docker/matomo
# 修改目录权限
chmod 777 web
# 一键启动
docker-compose up -d