docker-compose.yml Это мой файл docker-compose, используемый для развертывания службы в нескольких экземплярах с использованием стека docker. Как вы видите, служба app представляет собой laravel, работающий на двух узлах, и базу данных (mysql) на одном из узлов.
Полный репозиторий кода: https://github.com/taragurung/Ci-CD-docker-swarm
version: '3.4'
networks:
smstake:
ipam:
config:
- subnet: 10.0.10.0/24
services:
db:
image: mysql:5.7
networks:
- smstake
ports:
- "3306"
env_file:
- configuration.env
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
deploy:
mode: replicated
replicas: 1
app:
image: SMSTAKE_VERSION
ports:
- 8000:80
networks:
- smstake
depends_on:
- db
deploy:
mode: replicated
replicas: 2
Проблемы, с которыми я столкнулся. 1. Хотя служба находится в работающем состоянии, когда я проверяю журналы службы, я вижу, что миграция прошла успешно только на одном узле, а не работает в другом узле. Просмотрите журналы ниже
- Когда я запускаю службу приложения только в узле управления, устанавливая ограничения, приложения работают отлично. Я могу войти на страницу и делать все, но когда я запускаю службу приложения на любом узле, используя только реплики, появляется страница входа, но при попытке входа она перенаправляется на страницу НЕ НАЙДЕНА
Вот полные журналы при попытке запуска на 3 узлах. Ниже приведен пример при работе на 2 узлах. Вы можете подробно ознакомиться с проблемами миграции https://pastebin.com/wqjxSnv2
Сервисные журналы проверены с помощью docker service logs <smstake_app>
| Cache cleared successfully.
| Configuration cache cleared!
| Dropped all tables successfully.
| Migration table created successfully.
|
| In Connection.php line 664:
|
| SQLSTATE[42S02]: Base table or view not found: 1146 Table 'smstake.migratio
| ns' doesn't exist (SQL: insert into `migrations` (`migration`, `batch`) val
| ues (2014_10_12_100000_create_password_resets_table, 1))
|
|
| In Connection.php line 452:
|
| SQLSTATE[42S02]: Base table or view not found: 1146 Table 'smstake.migratio
| ns' doesn't exist
|
|
| Laravel development server started: <http://0.0.0.0:80>
| PHP 7.1.16 Development Server started at Thu Apr 5 07:02:22 2018
| [Thu Apr 5 07:03:56 2018] 10.255.0.14:53744 [200]: /js/app.js
| Cache cleared successfully.
| Configuration cache cleared!
| Dropped all tables successfully.
| Migration table created successfully.
| Migrating: 2014_10_12_000000_create_users_table
| Migrated: 2014_10_12_000000_create_users_table
| Migrating: 2014_10_12_100000_create_password_resets_table
| Migrated: 2014_10_12_100000_create_password_resets_table
| Migrating: 2018_01_11_235754_create_groups_table
| Migrated: 2018_01_11_235754_create_groups_table
| Migrating: 2018_01_12_085401_create_contacts_table
| Migrated: 2018_01_12_085401_create_contacts_table
| Migrating: 2018_01_12_140105_create_sender_ids_table
| Migrated: 2018_01_12_140105_create_sender_ids_table
| Migrating: 2018_02_06_152623_create_drafts_table
| Migrated: 2018_02_06_152623_create_drafts_table
| Migrating: 2018_02_21_141346_create_sms_table
| Migrated: 2018_02_21_141346_create_sms_table
| Seeding: UserTableSeeder
| Laravel development server started: <http://0.0.0.0:80>
| PHP 7.1.16 Development Server started at Thu Apr 5 07:03:23 2018
| [Thu Apr 5 07:03:56 2018] 10.255.0.14:53742 [200]: /css/app.css
Я не знаю, связано ли это с проблемой миграции или с чем-то еще. Иногда я могу войти в систему, и через некоторое время я снова перенаправляюсь на страницу «Не найдено» при нажатии на ссылку внутри панели инструментов.
entrypoint
с командами миграции. - person Tara Prasad Gurung   schedule 08.04.2018depends_on
должен был выполнить эту задачу правильно. Вот несколько изменений, которые я сделал, чтобы выполнить миграцию отдельно. pastebin.com/m69ChKC2 - person Tara Prasad Gurung   schedule 08.04.2018