Назад | Перейти на главную страницу

символическая ссылка не создается внутри контейнера докеров

К сожалению, я не могу создать эту символическую ссылку (&& 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

Заранее спасибо.

&& ln -s / db / var / www / html / blast / db /

Я не вижу в вашем Dockerfile, где:

/ дб / вар / www / html / взрыв / дб

каталоги создаются. Оба эти каталога кажутся мне нестандартными, и поэтому, вероятно, их еще нет в вашем базовом образе. Попробуйте добавить эту строку где-нибудь в вашем Dockerfile ПЕРЕД вашей командой для создания символической ссылки:

ЗАПУСТИТЬ mkdir -p / var / www / html / blast / db && \ mkdir -p / var / www / html / blast / db

Кроме того, я бы еще и проверил, что команда ls работает и может «видеть» эти каталоги, как только вы подтвердите, что они создаются в файловой системе Docker Image, что также будет отражено в файловой системе вашего контейнера ...

Если это не сработает, как уже просил Чарльз, вставьте вывод своей команды сборки докера и все сообщения об ошибках, которые вы получаете при запуске контейнера из полученного образа ...