В настоящее время я пытаюсь установить Singularity на elasti c beanstalk, и в качестве предварительного условия мне также необходимо установить Go. В настоящее время один из моих .config
файлов в моем каталоге .ebextensions
выглядит следующим образом:
container_commands:
01_install_packages:
command: |
yum update -y
yum groupinstall -y 'Development Tools'
yum install -y openssl-devel libuuid-devel libseccomp-devel wget squashfs-tools
02_install_docker:
command: yum -y install docker
03_install_go:
command: |
export VERSION=1.13 OS=linux ARCH=amd64
wget https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz
tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz
echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
04_install_singularity:
export VERSION=3.5.2
wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz
tar -xzf singularity-${VERSION}.tar.gz
cd singularity
./mconfig
make -C builddir
make -C builddir install
Эти команды были взяты непосредственно из документации по установке Singularity, и я убедился, что он успешно устанавливает Singularity на экземпляр CentOS. Когда я пытаюсь развернуть его на elasti c beanstalk, он успешно запускает его до тех пор, пока не доберется до линии make -C builddir
, где он терпит неудачу, потому что не может найти Go. После некоторого поиска я обнаружил, что он не может найти Go, потому что строка echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc
не записывает команду экспорта в ~/.bashrc
. Когда я вставил sh в экземпляр EC2 и он выглядел так, как будто не было ошибок разрешения на чтение-запись, поскольку он позволил мне отредактировать файл ~/.bashrc
, поэтому я не уверен, почему он не записал команду. Любые предложения о том, как решить эту проблему?