Как обещали одно из преимуществ докера, то вы можете проверить ваше приложение локально. Для этого вам нужно раскрутить три контейнера:
- Nginx.
- PHP-FPM.
- MySQL (который будет заменен Amazon Aurora при развертывании на AWS)
Теоретически, вы можете создать необходимые контейнеры вручную с Docker Run
Но это немного громоздко. Вы будете использовать Docker Compose, инструмент для работы с несколькими контейнерами, вместо этого.
Все, что вам нужно сделать, это создать Docker Compose File Docker-Compose.yml
Отказ
Настройка Возможно, вам нужно добавить свои собственные переменные среды для контейнера PHP (см. Встроенные комментарии).
version: '3' services: nginx: build: context: '..' dockerfile: 'docker/nginx/Dockerfile' # build your NGINX image depends_on: - php network_mode: 'service:php' # use network interface of php container to simulate awsvpc network mode php: build: context: '..' dockerfile: 'docker/php-fpm/Dockerfile' # build PHP image ports: - '8080:80' # forwards port of nginx container depends_on: - mysql environment: # add your own variables used by envsubst here DATABASE_HOST: mysql DATABASE_NAME: app DATABASE_USER: app DATABASE_PASSWORD: secret mysql: image: 'mysql:5.6' # matches the Amazon Aurora MySQL version command:'--default-authentication-plugin=mysql_native_password' ports: - '3306:3306' # forwards port 3306 to 3306 on your machine environment: MYSQL_ROOT_PASSWORD: secret # password for root user MYSQL_DATABASE: app # create database with name app MYSQL_USER: app # user app is granted full access to db app MYSQL_PASSWORD: secret # the password for user app
Из Внутри вашей временной рабочей среды выполните следующую команду для раскрутки контейнеров на вашем компьютере.
docker-compose -f docker/docker-compose.yml up
Magiciany, Docker Compose раскрутит три контейнера. Укажите свой браузер на http://localhost: 8080/index.php Чтобы убедиться, что ваше веб-приложение работает и работает. Файлы журналов всех контейнеров будут отображаться в вашем терминале, что много упрощает отладку.
Если вам нужно сделать изменения в настройке, пожалуйста, отмените работу Docker-Compose
процесс Ctrl + C
И после этого перезапустите следующую команду, чтобы убедиться, что изображения восстанавливаются.
docker-compose -f docker/docker-compose.yml up --build
Используйте свой любимый клиент MySQL и подключитесь к localhost: 3306
с именем пользователя root
и пароль секретарь
Если вам нужно создать схему или восстановить дамп базы данных.
После того, как вы проверили, что ваше приложение работает правильно, отмените работу Docker-Compose
Процесс нажатием Ctrl + C
и отрывьте контейнеры.
docker-compose -f docker/docker-compose.yml down
Пришло время развернуть ваше веб-приложение на AWS. Вы узнаете, как так в следующей части этой серии.
У вас есть вопросы? Пожалуйста, оставьте их в комментариях. Это 3-й пост серии. Следуйте за мной, чтобы убедиться, что вы не пропустите следующие посты.
Этот пост — это выдержка из нашей новой книги Rapid Docker на AWS Отказ Книга включает в себя образцы кода для PHP, Ruby (Rails), Python (Django), Джава (Spring Boot) и Node.js (Express).
Оригинал: «https://dev.to/andreaswittig/rapid-docker-on-aws-how-to-test-locally-4c76»