Với Docker compose
info
Tài liệu này chỉ dành cho các project bắt đầu bằng các application templates.
Tiến hành
Đầu tiên bạn hãy sử dụng git clone
, scp
hoặc bất kỳ tools nào bạn hay sử dụng để đưa source lên trên máy chủ, sau đó đi vào
thư mục chứa source mà bạn vừa đưa lên và start project với các tập lệnh sau:
- Đối với Laravel users
- Đối với Symfony users
APP_KEY=ChangeMe \
HASURA_ADMIN_SECRET=ChangeMe \
POSTGRES_PASSWORD=ChangeMe \
APP_HASURA_SECRET=ChangeMe \
APP_HASURA_BASIC_AUTH="$(printf hasura:${APP_HASURA_SECRET} | base64 -)" \
MAIL_HOST=ChangeMe \
MAIL_PORT=ChangeMe \
MAIL_USERNAME=ChangeMe \
MAIL_PASSWORD=ChangeMe \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
Đợi vài giây, tiếp đến là chạy database migrations và apply Hasura metadata:
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php artisan migrate --force --no-interaction; \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php artisan hasura:metadata:reload; \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php artisan hasura:metadata:apply;
Vậy là bạn đã deploy thành công project với Docker compose rồi đấy.
APP_SECRET=ChangeMe \
HASURA_ADMIN_SECRET=ChangeMe \
POSTGRES_PASSWORD=ChangeMe \
APP_HASURA_SECRET=ChangeMe \
APP_HASURA_BASIC_AUTH="$(printf hasura:${APP_HASURA_SECRET} | base64 -)" \
JWT_SECRET_KEY=ChangeMe \
JWT_PUBLIC_KEY=ChangeMe \
MAILER_DSN=ChangeMe \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
Đợi vài giây, tiếp đến là chạy database migrations và apply Hasura metadata:
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction; \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php bin/console hasura:metadata:reload; \
docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml exec apache php bin/console hasura:metadata:apply;
Vậy là bạn đã deploy thành công project với Docker compose rồi đấy.
info
Đối với môi trường production, Apache và Postgres containers sẽ không publish port chỉ còn Hasura publish trên port 80.
info
Để cấu hình HTTPS bạn hãy kham khảo thêm tại đây.