Докер с установкой ftp и nginx, как связать каждую папку? - PullRequest
0 голосов
/ 29 мая 2019

Я новичок в мире докеров. Я пытаюсь создать среду, содержащую несколько служб:

  1. Nginx
  2. MySQL * 1006
  3. PHPMyAdmin
  4. 1010 * кот *
  5. vsftp

Эти службы работают нормально, и я смог открыть его. Но у меня есть некоторые проблемы, которые не могут получить логику в этом сервисе докера. https://github.com/nanoninja/docker-nginx-php-mysql -> Это источник, который я сейчас использую, плюс я изменил файл, чтобы он стал пользовательским

version: '3'
services:
    web:
        image: nginx:alpine
        volumes:
            - "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"
            - "./etc/ssl:/etc/ssl"
            - "./web:/var/www/html"
            - "./etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template"
        ports:
            - "8000:80"
            - "3000:443"
        environment:
            - NGINX_HOST=${NGINX_HOST}
        command: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
        restart: always
        depends_on:
            - php
            - mysqldb

    php:
        image: nanoninja/php-fpm:${PHP_VERSION}
        restart: always
        volumes:
            - "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
            - "./web:/var/www/html"
    composer:
        image: "composer"
        volumes:
            - "./web/app:/app"
        command: install
    myadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        ports:
            - "8080:80"
        environment:
            - PMA_ARBITRARY=1
            - PMA_HOST=${MYSQL_HOST}
        restart: always
        depends_on:
            - mysqldb
    mysqldb:
        image: mysql:${MYSQL_VERSION}
        container_name: ${MYSQL_HOST}
        restart: always
        env_file:
            - ".env"
        environment:
            - MYSQL_DATABASE=${MYSQL_DATABASE}
            - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
            - MYSQL_USER=${MYSQL_USER}
            - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        ports:
            - "8989:3306"
        volumes:
            - "./data/db/mysql:/var/lib/mysql"

    tomcat:
        image: hitipm/tomcat9
        ports:
            - "8011:8080"
        restart: always
        volumes:
            - "./tomcat:/usr/local/tomcat"
        # command: /opt/tomcat/bin/deploy-and-run.sh

    vsftpd:
        image: fauria/vsftpd
        restart: always
        environment:
        - FTP_USER=ftpuser
        - FTP_PASS=supersecret
        - ONLY_UPLOAD=NO
        - PASV_ENABLE=YES
        - PASV_ADDRESS=127.0.0.1
        - PASV_MIN=21200
        - PASV_MAX=21210
        ports:
            - 0.0.0.0:20:20
            - 0.0.0.0:21:21
            - 21100-21110:21100-21110
        volumes:
            - ./home:/home/vsftpd
            - ./logs:/var/log/vsftpd

Я развернул свой военный файл здесь для кота, но у меня есть функция для загрузки файла в nginx (ранее я работал в окружении centos 7), папка которого /usr/share/nginx/html. Если это так, как я полагаю, из докера Tomcat и загрузить файл в докер Nginx?

А для vsftp как мне подключить его из докера vsftp к докер nginx? Не могу понять идею докера, но я пытаюсь создать рабочую среду для тестирования моих приложений. Какую часть я пропускаю? Или я просто не могу использовать метод docker для достижения того, что я хочу в моей текущей среде развертывания?

...