LINUX.ORG.RU
ФорумAdmin

ownCloud и Docker - недоступен снаружи

 ,


0

2

Контейнеры mysql и owncloud успешно запускаются

# docker-compose ps
     Name                   Command               State           Ports          
--------------------------------------------------------------------------------
neu_db_1         docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp    
neu_owncloud_1   /usr/bin/entrypoint /usr/b ...   Up      0.0.0.0:8080->8080/tcp 
[/ode]

Но снаружи главная страница недоступна по http://ip-address:8080

Файл .env

OWNCLOUD_VERSION=10.0
OWNCLOUD_DOMAIN=localhost
ADMIN_USERNAME=admin
ADMIN_PASSWORD=pwd
HTTP_PORT=8080
HTTPS_PORT=80443

Файл docker-compose.yml

version: '2.0'

volumes:
  files:
    driver: local
  mysql:
    driver: local
  backup:
    driver: local

services:
  owncloud:
    image: owncloud/server:${OWNCLOUD_VERSION}
    restart: always
    ports:
      - ${HTTP_PORT}:8080
    depends_on:
      - db

    environment:
      - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
      - OWNCLOUD_DB_TYPE=mysql
      - OWNCLOUD_DB_NAME=owncloud
      - OWNCLOUD_DB_USERNAME=owncloud
      - OWNCLOUD_DB_PASSWORD=pazzword
      - OWNCLOUD_DB_HOST=localhost
      - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
      - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - OWNCLOUD_MYSQL_UTF8MB4=true

    volumes:
      - files:/home/owncloud

  db:
    image: mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=passwd
      - MYSQL_USERNAME=owncloud
      - MYSQL_PASSWORD=passwd
      - MYSQL_DATABASE=owncloud
      - MYSQL_MAX_ALLOWED_PACKET=128M
      - MYSQL_INNODB_LOG_FILE_SIZE=64M

    volumes:
      - mysql:/var/lib/mysql

текущие правила iptables:

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-ISOLATION  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            172.19.0.3           tcp dpt:8080

Chain DOCKER-ISOLATION (1 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Ответ на: комментарий от v9lij

Выполнил все по официальной доке вместе с Redis для docker-compose. Контейнеры все 3 в состоянии Up:

# docker-compose ps
     Name                   Command               State               Ports              
----------------------------------------------------------------------------------------
neu_db_1         /usr/bin/entrypoint /bin/s ...   Up      3306/tcp                       
neu_owncloud_1   /usr/bin/entrypoint /usr/b ...   Up      0.0.0.0:8080->8080/tcp, 8080/tcp 
neu_redis_1      /usr/bin/entrypoint /bin/s ...   Up      6379/tcp   

Но в браузере по http://ip-address:8080 тишина.

В логах:

# docker-compose logs db
Attaching to neu_db_1
db_1        | Cron is enabled, launching it!
db_1        | 181204 17:44:38 mysqld_safe Logging to '/var/lib/mysql/ce452c877ed8.err'.
db_1        | 181204 17:44:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
db_1        | 181204 17:44:39 mysqld_safe Logging to '/var/lib/mysql/ce452c877ed8.err'.

При этом файл /var/lib/mysql/ce452c877ed8.err отсутствует в системе

# docker-compose logs --follow owncloud 
Attaching to neu_owncloud_1
owncloud_1  | Creating volume folders...
owncloud_1  | Creating hook folders...
owncloud_1  | Waiting for MySQL...
owncloud_1  | wait-for-it: waiting 180 seconds for db:3306
owncloud_1  | wait-for-it: timeout occurred after waiting 180 seconds for db:3306

Похоже, что к mariadb не может подключиться...

gigantischer
() автор топика
Ответ на: комментарий от gigantischer

Сейчас у меня ситуация такая: если исп-ть image: library/mysql в описании сервиса db в docker-compose.yml, то при старте контейнеров контейнер owncloud постоянно рестартится. В логе:

# docker-compose logs owncloud
owncloud_1  | Creating volume folders...
owncloud_1  | Creating hook folders...
owncloud_1  | Waiting for MySQL...
owncloud_1  | wait-for-it: waiting 180 seconds for db:3306
owncloud_1  | wait-for-it: db:3306 is available after 0 seconds
owncloud_1  | Waiting for Redis...
owncloud_1  | wait-for-it: waiting 60 seconds for redis:6379
owncloud_1  | wait-for-it: redis:6379 is available after 0 seconds
owncloud_1  | Writing config file...
owncloud_1  | Fixing base perms...
owncloud_1  | Fixing data perms...
owncloud_1  | Fixing hook perms...
owncloud_1  | Installing server database...
owncloud_1  | Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'owncloud'@'172.20.0.4' (using password: YES)
owncloud_1  |  -> 

Но когда я внутри контейнера db завожу юзера 'owncloud'@'172.20.0.4' ситуация не изменяется, все по прежнему рестартится контейнер owncloud все с той же ошибкой:

owncloud_1  | Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'owncloud'@'172.20.0.4' (using password: YES)

gigantischer
() автор топика
Ответ на: комментарий от gigantischer

Ты искал файл

/var/lib/mysql/ce452c877ed8.err

у себя в системе чтоль? Этот файл лежит в волюме, волюм в /var/lib/docker/volumes/
Там и надо искать твой волюм, дропать его, запускать раскатку заново и радоваться. Чувак, тебе точно докер нужен? Ты с пустяшной проблемой, которая решается в несколько секунд, сидишь тут уже вечность.
Ты с докером работал до этого?

v9lij ★★★★★
()
Ответ на: комментарий от v9lij

ну так если проблема пустяшная, ткните куда надо, чтобы быстрее ее разрулить))

gigantischer
() автор топика
Ответ на: комментарий от gigantischer

Тебе надо убить все контейнере, что ты раскатал, поудалять волюмы, что ты насоздавал и запустить раскатку заново.
Конкретно сейчас у тебя не запускается база, потому что ты ей подсовываешь волюм с битой базой.

v9lij ★★★★★
()
Ответ на: комментарий от v9lij

Спасибки, это ближе к теме)) Чтобы удалить все волюмы надо так?

# docker-compose down -v

gigantischer
() автор топика
Ответ на: комментарий от v9lij

удалил волюмы и перезапустил

# docker-compose up -d

При этом контейнер owncloud рестартится, в логе:

owncloud_1  | Creating volume folders...
owncloud_1  | Creating hook folders...
owncloud_1  | Waiting for MySQL...
owncloud_1  | wait-for-it: waiting 180 seconds for db:3306
owncloud_1  | wait-for-it: db:3306 is available after 0 seconds
owncloud_1  | Waiting for Redis...
owncloud_1  | wait-for-it: waiting 60 seconds for redis:6379
owncloud_1  | wait-for-it: redis:6379 is available after 0 seconds
owncloud_1  | Writing config file...
owncloud_1  | Fixing base perms...
owncloud_1  | Fixing data perms...
owncloud_1  | Fixing hook perms...
owncloud_1  | Installing server database...
owncloud_1  | Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'owncloud'@'172.20.0.4' (using password: YES)
owncloud_1  |  -> 

Теперь надо ручками создавать юзера 'owncloud'@'172.20.0.4' внутри контейнера db или он должен был автоматически создаться, т.к. прописан в docker-compose.yml?

gigantischer
() автор топика
Ответ на: комментарий от gigantischer

Создал ручками юзера 'owncloud'@'172.20.0.4' внутри контейнера db, ошибка mysql исчезла...

gigantischer
() автор топика
Ответ на: комментарий от v9lij

Спасибки, убил все ненужные контейнеры, волюмы и перезапустил раскатку заново, теперь все 3 контейнера в состоянии UP. Только в браузере по http://внешний_ip:8080 тишина...

При этом в файле .env указан:

HTTP_PORT=8080

А в docker-compose.yml:

   ports:
      - ${HTTP_PORT}:80
.......................

Вроде всё верно, но в браузере тишина...

gigantischer
() автор топика
Ответ на: комментарий от v9lij

нет, с docker-compose из репозиториев в Ubuntu:

ii  docker-compose                        1.8.0-2~16.04.1                            all          Punctual, lightweight development environments using Docker

gigantischer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.