..

targetcli on docker

targetcli-fb 在 archlinux 一直都没有进入官方仓库,属于 AUR。导致每次系统滚动升级的时候 iscsi 服务可能会出现问题。最近又碰到了这个问题,并且 targetcli-fb 在 AUR 中没有对应的升级改动。所以简单的重装无法恢复这个服务。

之前有想过把这个服务部署到 docker 中,但是因为这个服务偏底层一点,直接部署是无法工作的。今天花了点时间看了一下。关键就是 /run/dbus/system_bus_socket,分享一下我用的 docker-compose.yml

services:  
  targetd:
    build:
      context: ./build-context
      dockerfile_inline: |
        FROM alpine:3.19

        RUN apk add -U targetcli
    container_name: targetd
    privileged: true
    network_mode: host
    volumes:
      - /run/dbus/system_bus_socket:/run/dbus/system_bus_socket
      - /etc/target:/etc/target
      - /dev:/dev
      - /lib/modules:/lib/modules
    entrypoint: ash -c "/usr/bin/targetctl restore && tail -f /dev/null"    
    restart: unless-stopped