Docker 部署 astrometry.net 星图匹配
整体思路: #
- 安装 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 pull5、运行: #
将待测图像 test.fits 放入 input/ 中。 运行:
(sudo)
docker compose run --rm solver-heavy \
--config /etc/astrometry.cfg \
--dir /output/heavy \
--overwrite \
/input/test.fits即可得到结果。 使用轻量星表,则将命令中的heavy替换为light即可。