介绍

  • 用于 iCloud 照片下载器命令行实用程序的 Alpine Linux 3.19.0 容器

问题

  • 此项目在实际部署过程中发现问题较多,仅做一个参考。

  • 可部署尝试,也可自行看文末项目地址进行研究。

安装教程

docker-compose方式安装

  1. 演示以在群晖NAS系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker-compose)

  2. 浏览器打开Apple iCloud官网进行登录一次你的苹果账户

    官网地址: https://www.icloud.com.cn/

  3. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。

  4. 进入群晖的docker文件夹(你想将容器数据存储到哪就进哪个文件夹)

    cd /volume1/docker
  5. 创建项目文件夹及子文件夹

    # config文件夹是存储项目容器配置数据
    # Photos文件夹是存储你的iCloud同步过来的照片和视频
    
    mkdir -p iCloud/{config,Photos}
  6. 进入项目文件夹

    cd iCloud
  7. 创建配置文件夹(可选)

    vi config/icloudpd.conf

    Esc键退出编辑模式,输入 :wq 退出并保存。
    (目的是创建一个空的配置文件。)

  8. 创建故障保护验证文件

    vi Photos/.mounted

    Esc键退出编辑模式,输入 :wq 退出并保存。
    (目的是创建一个空的配置文件,没有这个文件服务不会运行。)

  9. 为容器创建一个专用网络,避免DNS影响。

    docker network create \
       --driver=bridge \
       --subnet=192.168.115.0/24 \
       --gateway=192.168.115.254 \
       --opt com.docker.network.bridge.name=icloudpd_br0 \
       icloudpd_bridge
  10. 编辑docker-compose.yml文件

    vi docker-compose.yml
  11. 按字母 i 键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入 :wq 退出并保存。

    version: "3"
    services:
        icloudpd:
            privileged: true
            container_name: iCloud
            hostname: icloudpd_boredazfcuk
            networks:
                - icloudpd_bridge
            restart: always
            environment:
                - TZ=CST-8
                - icloud_china=flase    #如果无法解析到iCloud,就将flase改成True,换成国内的iCloud。
                - apple_id=*********    #换成你的Apple ID
                - authentication_type=MFA    #已开启双重验证就是MFA,否则换成web。
                - download_path=/home/${user}/iCloud
            volumes:
                - /volume1/docker/iCloud/config:/config    #前面的文件夹路径换成你自己的
                - /volume1/docker/iCloud/Photos:/home/${user}/iCloud    #前面的文件夹路径换成你自己的
            image: boredazfcuk/icloudpd:stable    #后面的:stable为可选项,可不加,为了区分镜像版本而已。
    networks:
        icloudpd_bridge:
            external: true
            name: icloudpd_bridge
    volumes:
        icloudpd_boredazfcuk_config:
            external:
                name: icloudpd_boredazfcuk_config
    
  12. 执行命令,启动docker-compose文件,拉取镜像并创建容器。

    sudo docker-compose up -d
  13. 查看正在运行的项目容器

    docker-compose ps

初始化项目容器

  1. 进入容器命令交互页面

    sudo docker exec -it iCloud /bin/sh
  2. 启动脚本,开始配置容器内Apple ID的MFA认证。

    /usr/local/bin/sync-icloud.sh --Initialise
  3. 等看到下面这行提示时,输入你的Apple ID的密码(输入时不显示),然后按Enter键确认。
    然后在看到【y/N】提示时,输入 y 进行确认。

  4. 然后输入你的苹果手机上的验证码

  5. 【第一种验证方式,演示安装版本。】
    然后在手机上弹出的Apple ID登录弹窗上点击允许。
    或者提示验证超时时,重新输入登录验证码。
    根据自己登录时的实际提示进行操作,很简单。
    然后看到命令提示停止显示的是倒数第二行的successful,就可以了。

  6. 【第二种验证方式,网络搜集到的。】
    然后它首先会提示使用绑定的手机号收取验证码短信,先选择“0”,然后我们绑定的手机就会收到苹果那边发过来的验证码,我们在后面输入短信验证码并回车,这个时候在我们的苹果手机上会有弹窗验证,我们直接点击“允许”即可。
    这时苹果启动双向验证安全机制,会有两个选项:发送短信验证和手机授权验证。我们这个时候就自己随意选择吧。

    0,短信验证
    1,手机授权验证
    我这里选择的“ 1 ”,输入手机弹出的6位授权码并回车。

  7. 然后输入下面的命令退出容器命令交互页面

    exit
  8. 将项目容器重启一下,让它进行同步。

    docker-compose restart

项目地址

  • GitHub项目地址:https://github.com/boredazfcuk/docker-icloudpd

功德+1(狗子).gif

👇👇👇