不幸的是,我无法在 docker 容器内创建此符号链接 (&& ln -s /db /var/www/html/blast/db/)。我错过了什么?
FROM ubuntu:16.04
# File Author / Maintainer
MAINTAINER Rafael Hernandez <https://github.com/fikipollo>
################## BEGIN INSTALLATION ######################
#Add the link to internal MRS service
RUN apt-get update \
&& apt-get -y install build-essential ruby ruby-dev ncbi-blast+ nginx php-fpm apache2-utils sudo wget csh fcgiwrap \
&& apt-get clean \
&& gem install sequenceserver \
&& gem install ncbi-blast-dbs
ENV ADMIN_USER=admin \
ADMIN_PASS=supersecret \
MAX_FILE_SIZE=300 \
CPU_NUMBER=4
COPY configs/* /tmp/
ADD ./blast /var/www/html/blast
RUN mv /tmp/*.html /var/www/html/ \
&& mv /tmp/*.png /var/www/html/ \
&& mv /tmp/*.php /var/www/html/ \
&& cat /tmp/rules >> /etc/sudoers \
&& mv /tmp/default /etc/nginx/sites-available/ \
&& mv /tmp/entrypoint.sh /usr/bin/entrypoint.sh \
&& chmod +x /usr/bin/entrypoint.sh \
&& mv /tmp/admin_tools /usr/local/bin/admin_tools \
&& chmod +x /usr/local/bin/admin_tools \
&& mv /tmp/sequenceserver /etc/init.d/sequenceserver \
&& chmod +x /etc/init.d/sequenceserver \
&& ln -s /db /var/www/html/blast/db/ \
&& chown www-data:www-data /var/www/html/* \
&& chmod 660 /var/www/html/*.* \
&& chmod o+w /var/www/html/blast/TmpGifs/ \
&& htpasswd -b -c /etc/nginx/.htpasswd admin supersecret
##################### INSTALLATION END #####################
ENTRYPOINT ["/usr/bin/entrypoint.sh"]
。
version: '2'
services:
instance1-blast:
build: .
container_name: instance1-blast
environment:
- ADMIN_USER=admin
- ADMIN_PASS=123
- MAX_FILE_SIZE=50
- CPU_NUMBER=5
depends_on:
- instance1-data
volumes_from:
- instance1-data
ports:
- "8094:80"
- "8095:4567"
instance1-vsftpd:
image: fikipollo/vsftpd
container_name: instance1-vsftpd
environment:
- FTP_USER=ftpuser
- FTP_PASS=supersecret
- ONLY_UPLOAD=YES
- PASV_ENABLE=NO
- FTP_HOME=/raw
- UMASK=000
depends_on:
- instance1-data
volumes_from:
- instance1-data
ports:
- "8096:21"
instance1-data:
image: busybox
container_name: instance1-data
volumes:
- /data/instance1-data/blast-data/db:/db
- /data/instance1-data/blast-data/raw:/raw
- /data/instance1-data/blast-data/tmp:/tmp
先感谢您。
答案1
&& ln -s /db /var/www/html/blast/db/
我没有在您的 Dockerfile 中看到:
/db /var/www/html/blast/db
正在创建目录。这两个目录在我看来都是非标准的,因此可能不存在于您的基础映像中。请尝试在创建符号链接的命令之前在 Dockerfile 中的某个位置添加此行:
运行 mkdir -p /var/www/html/blast/db && \ mkdir -p /var/www/html/blast/db
此外,我要检查的另一件事是 ls 命令是否有效并且可以“看到”这些目录,一旦您确认它们正在您的 Docker 映像文件系统中创建,它们也会反映在您的容器的文件系统中......
如果这不起作用,正如 Charles 已经要求的那样,请粘贴 docker build 命令的输出以及从该结果图像启动容器时得到的任何错误输出......