Как заменить args из docker на особенность? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь получить изображение докера, но должен использовать сингулярность. Как я могу это сделать? Вот сценарий, который я запускаю.

cp -rp ~/adversarial-policies/ $SLURM_TMPDIR
cd adversarial-policies/
singularity pull docker://humancompatibleai/adversarial_policies:latest
singularity run -it --env MUJOCO_KEY=~/.mujoco/mjkey.txt ./adversarial_policies-latest.simg 
source ./modelfreevenv/bin/activate
python -m modelfree.multi.train with paper --path $SLURM_TMPDIR --data-path $SLURM_TMPDIR
cp $SLURM_TMPDIR/job-output.txt /network/tmp1/gomrokma/
cp $SLURM_TMPDIR/error.txt /network/tmp1/gomrokma/

Я получаю ошибки с ERROR: Unknown option: --build-arg ERROR: Unknown option: -it.

Любая помощь будет оценена. Я новичок в использовании контейнеров сингулярности вместо Docker

1 Ответ

0 голосов
/ 09 октября 2019

Singularity и Docker являются контейнерами, но они не являются заменой друг другу. Я настоятельно рекомендую прочитать документацию соответствующей версии используемой вами особенности. В последней версии есть хороший раздел на , использующий докер и Singularity вместе .


Если вы используете Singularity v3 или новее, файл, созданный из singularity pull, будет называться adversarial_policies_latest.sif, а не adversarial_policies-latest.simg. Если v2 - единственная версия, доступная в вашем кластере, попросите администраторов установить v3. 2.6.1 - единственный v2 без проблем безопасности, и он больше не получает никаких обновлений.

Что касается singularity run ..., опции докера -it предназначены для принудительного запуска интерактивного tty-сеанса, а не для его запуска вфон. singularity exec и singularity run оба всегда будут работать на переднем плане, поэтому не существует эквивалентного обязательного параметра для использования с сингулярностью. Передача переменных среды также обрабатывается по-разному. Поскольку контейнер запускается как ваш пользователь, он передает вашу среду ему. Вы можете установить export MUJOCO_KEY=~/.mujoco/mjkey.txt дальше по сценарию или установить его только для команды: MUJOCO_KEY=~/.mujoco/mjkey.txt singularity run ./adversarial_policies-latest.simg.

...