整体思路:
- 安装 docker, docker compose
- 下载星表
- 启动 docker 容器
- 命令调用 docker 运行
最终效果:
# 进入目录:
cd /opt/astrometry
# 运行解算
docker compose run --rm solver-heavy \
--config /etc/astrometry.cfg \
--dir /output/heavy \
--overwrite \
/input/test.fits
# 等待得到结果
详细部署过程:
1、安装 docker
Ubuntu:服务器上实际使用的: https://docs.docker.com/desktop/setup/install/linux/ubuntu/
- 安装后,可以将使用它的用户添加进 docker 组。注意,进入docker组的用户相当于获得sudo权限。
sudo usermod -aG docker user_to_use
* Mac 安装请参考:
https://docs.docker.com/desktop/setup/install/mac-install/
2、创建相应目录:
/opt/astrometry/
├── docker-compose.yml (docker compose 启动配置)
├── config/(配置文件)
│ └── astrometry.cfg
├── indexes-light/(轻量星表)
├── indexes-heavy/(重型星表)
├── input/(待测图像)
└── output/(输出结果)
├── light/
└── heavy/
* Mac 创建目录建议:
mkdir -p ~/astrometry/{indexes-light,indexes-heavy,input,output/light,output/heavy,config}
cd ~/astrometry
*
3、下载星表:
轻量(60G)
cd /opt/astrometry/indexes-light
wget -c -r -l1 -np -nd -A "*.fits" https://portal.nersc.gov/project/cosmo/temp/dstn/index-5200/LITE/
重型(128G)
cd /opt/astrometry/indexes-heavy
wget -c -r -l1 -np -nd -A "*.fits" https://portal.nersc.gov/project/cosmo/temp/dstn/index-5200/
4、准备 Docker Compose 配置并拉取镜像
在docker-compose.yml中写入:
name: astrometry
services:
solver-light:
image: astrometrynet/solver:0.98
init: true
user: "${UID}:${GID}"
network_mode: "none"
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp:rw,noexec,nosuid,size=1g
volumes:
- ./indexes-light:/usr/local/data:ro
- ./config/astrometry.cfg:/etc/astrometry.cfg:ro
- ./input:/input:ro
- ./output:/output:rw
entrypoint: ["solve-field"]
command: ["--help"]
solver-heavy:
image: astrometrynet/solver:0.98
init: true
user: "${UID}:${GID}"
network_mode: "none"
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp:rw,noexec,nosuid,size=1g
volumes:
- ./indexes-heavy:/usr/local/data:ro
- ./config/astrometry.cfg:/etc/astrometry.cfg:ro
- ./input:/input:ro
- ./output:/output:rw
entrypoint: ["solve-field"]
command: ["--help"]
在config/astrometry.cfg写入:
cat > config/astrometry.cfg <<'EOF'
add_path /usr/local/data
autoindex
inparallel
EOF
拉取镜像:
docker compose pull
5、运行:
将待测图像 test.fits 放入 input/ 中。 运行:
(sudo)
docker compose run --rm solver-heavy \
--config /etc/astrometry.cfg \
--dir /output/heavy \
--overwrite \
/input/test.fits
即可得到结果。 使用轻量星表,则将命令中的heavy替换为light即可。