rucio/rucio-dev本容器为Rucio科学数据管理系统提供开发环境,可在Dockerhub上获取,镜像名称为rucio/rucio-dev,对应的Dockerfile详见GitHub仓库。该容器允许将本地代码挂载至容器的bin、lib和tools目录,无需重建容器即可针对开发代码运行测试和检查。容器配置了PostgreSQL数据库,关闭了fsync及大部分预写日志(WAL)的耐久性功能,以提高测试I/O吞吐量,适用于Rucio的开发与测试场景。
bin、lib、tools目录,实时反映代码变更sudo apt install docker-compose安装bashsudo systemctl start docker
若成功,将输出确认信息,表明Docker环境就绪。bashdocker run hello-world
~/dev/rucio:
bashcd ~/dev git clone ***:<your_username>/rucio.git cd rucio
bashgit remote add upstream ***:rucio/rucio.git git fetch --all
bash# 替换~/dev/rucio/tools/pre-commit为远程钩子文件 curl -o ~/dev/rucio/tools/pre-commit [***] chmod +x ~/dev/rucio/tools/pre-commit
使用docker-compose启动Rucio开发环境:
bashdocker-compose --file etc/docker/dev/docker-compose.yml up -d
检查运行中的容器:
bashdocker ps
应显示Rucio服务器、PostgreSQL数据库、FTS及其MySQL数据库、Graphite监控和三个XrootD存储服务器容器。
bashdocker exec -it dev_rucio_1 bin/bash
在主机编辑代码(如~/dev/rucio目录下的文件),容器内实时同步。推荐使用两个终端进行开发:
bashdocker exec -it dev_rucio_1 /bin/bash logshow # 查看Rucio服务器日志
bashdocker exec -it dev_rucio_1 /bin/bash rucio whoami # 示例命令,终端1将显示服务器调试输出
容器内可运行完整测试套件或选择性测试:
bashtools/run_tests_docker.sh
bashtools/run_tests_docker.sh -i # 初始化测试环境 nosetests -v lib/rucio/tests/test_replica.py # 运行特定模块测试 nosetests -v lib/rucio/tests/test_replica.py:TestReplicaCore # 运行测试类 nosetests -v lib/rucio/tests/test_replica.py:TestReplicaCore.test_delete_replicas_from_datasets # 运行单个测试用例
修改服务器端文件(如lib/rucio/web)后,若变更未生效,可刷新memcache并重启web服务器:
bashecho 'flush_all' | nc localhost *** && httpd -k graceful
容器的PostgreSQL数据库暴露端口至主机,可通过以下信息连接:
localhost:5432ruciodevruciosecret
可使用数据库工具(如DBeaver)连接管理。清理Docker占用的磁盘空间:
bashdocker system prune -f --volumes
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务