Jestem dość nowy do dokera, a ja próbuję zrobić kontener z wieloma aplikacjami.

Puść, że mój plik Docker-Compose jest taki:

version: '2'

services:
    myapp:
        build: ./dockerfiles/myapp
        volumes:
          - ./www:/var/www
          - ./logs:/var/log
          - ./mysql-data:/var/lib/mysql
          - ./php:/etc/php5
          - ./nginx:/etc/nginx
        ports:
            - "8082:8000"
            - "6606:3306"
        links:
            - mysql:mysql
            - php:php
            - nginx:nginx
    mysql:
        image: mysql
        environment:
            MYSQL_ROOT_PASSWORD: M@yW3Bw35t
            MYSQL_USER: replymwp
            MYSQL_PASSWORD: ZSzLPoOi9wlhFaiJ
    php:
        image: php:5.6-fpm
        links:
            - mysql:db
    nginx:
        image: nginx
        links:
            - php:php

Teraz w Dockerfile MyApp, chcę zainstalować pakiet, który potrzebuje MySQL.

FROM debian:jessie

RUN apt-get update

RUN apt-get update 
RUN apt-get install -y apt-show-versions

RUN apt-get install -y wget 
RUN wget http://repo.ajenti.org/debian/key -O- | apt-key add -
RUN echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >>         /etc/apt/sources.list
RUN apt-get update 
RUN apt-get install -y ajenti

RUN apt-get install -y ajenti-v ajenti-v-ftp-vsftpd ajenti-v-php-fpm ajenti-v-mysql

EXPOSE 8000
ENTRYPOINT ["ajenti-panel"]

Teraz problemem jest, gdy doker próbuje zbudować mój obraz, zainstalować PHP, MySQL itp ... Nawet jeśli łączę go w moim pliku Docker-Compose. A po drugie, gdy próbuje zainstalować MySQL, monituje o master hasło i pozostań zablokowany w tym kroku, nawet jeśli wypełnię coś ...

Może jestem całkowicie źle w moim sposobie korzystania z tego?

Wszelka pomoc byłaby doceniana.

0
Mayous 17 luty 2017, 18:06

2 odpowiedzi

Najlepsza odpowiedź

Przypuszczam, że twój ajenti ma zależność od MySQL, więc jeśli to zrobisz apt-get install ajenti, stara się zaspokoić tę zależność. W szczególności instalujesz ajenti-v-mysql, co wydaje się mieć zależność MySQL

Ponieważ chcesz uruchomić MySQL oddzielny, może być konieczne do zrobienia --no-install-recommends? To jest flaga voor apt-get, więc dostaniesz coś takiego

apt-get install <packagename> --no-install-recommends

Oznaczałoby to, że nie otrzymasz zależności, więc może być konieczne dowiedzieć się, jakie inne wpływy potrzebne.

php-fpm ma ten sam problem, przypuszczam, że całe linia obejmuje ajenti-v-php-fpm jest trochę za dużo?

1
Nanne 17 luty 2017, 16:01

Jeśli planujesz korzystać z oddzielnych kontenerów MySQL i PHP, dlaczego nadal znajdujesz instalację w DockerFile MPAPP na tej linii:

RUN apt-get install -y ajenti-v ajenti-v-ftp-vsftpd ajenti-v-php-fpm ajenti-v-mysql

Jeśli zamierzasz użyć kontenerów MySQL i PHP, nie potrzebujesz ich w swojej aplikacji. Powinno to również dbać o swój drugi problem o monit o hasło MySQL.

Należy pamiętać, że będziesz musiał zmienić nazwy hostów MySQL i konfiguracji PHP z konfiguracji MyAppa. Myślę, że możesz lepiej szukać samouczka do konfiguracji przystawki, musisz spojrzeć na znalezienie najbardziej odpowiedniego, ale coś takiego jak To dałoby Ci dobry początek.

0
mickadoo 17 luty 2017, 15:15