Skip to content

Multi-Environment Setup leads to Error 418 #7

Description

@FlxHbr

Hi to everybody! First of all, thanks for dockware.

However, i am struggling to setup a multi channel shop. I am getting "Error 418 - I'm a teapot", whatever i do. I am developing on Mac (M1, Venutra 13.2.1, so nginx is in opt/homebrew/etc/ngnix).

I start the containers with docker compose, everything runs fine. "make init" runs as well, but after opening "http://shop1.shopware.com/" the Error 418 occurs. etc/hosts is changed and the urls are added. I added the urls to my backend channels as well.

docker-compose-yml:

version: "3"
services:
proxy:
container_name: proxy
image: dockware/proxy:latest
ports:
- "80:80"
- "3306:3306"
- "22:22"
- "443:443"
- "3000:3000"
- "8888:8888"
- "9999:9999"
- "9998:9998"
depends_on:
- shop1
- shop2
volumes:
- "db_volume:/var/lib/mysql"
- "./src:/var/www/html/"# ...excluding shopware default directories
- "/var/www/html/.git/"
- "/var/www/html/public/build"
- "/var/www/html/var/cache"
- "/var/www/html/vendor"# ...additional project specific excludes...
- "/var/www/html/custom/plugins/MyPlugin/src/Resources/app/administration/node_modules/"
- "/var/www/html/custom/plugins/MyPlugin/src/Resources/app/storefront/node_modules/"
- "/var/www/html/custom/plugins/MyPlugin/tests/Cypress/"
- "./proxy/shop-1.conf:/opt/homebrew/etc/nginx/conf.d/shop-1.conf"
- "./proxy/shop-2.conf:/opt/homebrew/etc/nginx/conf.d/shop-2.conf"
networks:
- web
environment:
# default = 0, recommended to be OFF for frontend devs
- XDEBUG_ENABLED=0
# -----------------------------------------------------------------------
shop1:
image: dockware/dev:latest
container_name: shop1
ports:
- "2001:22"
- "3001:3306"
shop2:
image: dockware/dev:latest
container_name: shop2
ports:
- "2002:22"
- "3002:3306"
volumes:
db_volume:
driver: local
networks:
web:
external: false

makefile:

.PHONY: help
.DEFAULT_GOAL := help
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'# ---------------------------------------------------------------------------------------------
init: ## Installs and initializes all environments
docker exec -i shop1 mysql -uroot -proot shopware < ./database/add-https.sql
docker exec -it shop1 bash -c 'php bin/console sales-channel:update:domain shop1.shopware.com'
docker exec -it shop1 bash -c 'php bin/console cache:clear'# -----------------------------------------------------------------------------------------------------------
docker exec -i shop2 mysql -uroot -proot shopware < ./database/add-https.sql
docker exec -it shop2 bash -c 'php bin/console sales-channel:update:domain shop2.shopware.com'
docker exec -it shop2 bash -c 'php bin/console cache:clear'# -----------------------------------------------------------------------------------------------------------
open https://shop1.shopware.com
open https://shop2.shopware.com
download: ## Downloads files from the container to your host
mkdir -p ../../src/shop1
mkdir -p ../../src/shop2
docker cp shop1:/var/www/html/. ../../src/shop1
docker cp shop2:/var/www/html/. ../../src/shop2
watch-storefront: ## Starts the Storefront Watcher, [make storefront-admin shop=shop1]
bash -c "trap 'make stop-watch-storefront' EXIT; docker exec -it $(shop) bash -c 'cd /var/www && APP_URL=http://0.0.0.0 make watch-storefront'"
watch-admin: ## Starts the Admin Watcher, [make watch-admin shop=shop1]
docker exec -it $(shop) bash -c 'cd /var/www && make watch-admin'

shop-1.conf (shop-2.conf is identical, except that "1" is changed of course):

server {
listen 80;
server_name shop1.shopware.com;
return 301 https://$host$uri$is_args$args;
}
server {
listen 443 ssl;
server_name shop1.shopware.com;
ssl_certificate /etc/nginx/ssl/selfsigned.crt;
ssl_certificate_key /etc/nginx/ssl/selfsigned.key;
location / {
proxy_pass https://shop1;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
}
server {
listen 8888 ssl;
server_name shop1.shopware.com;
ssl_certificate /etc/nginx/ssl/selfsigned.crt;
ssl_certificate_key /etc/nginx/ssl/selfsigned.key;
location /admin {
proxy_pass http://shop1:8888;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
location /static {
proxy_pass http://shop1:8888;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
location /api {
proxy_pass http://shop1;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
location / {
proxy_pass http://shop1:8888;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
}
server {
listen 9998;
server_name shop1.shopware.com;
location / {
proxy_set_header Host localhost;
proxy_pass http://shop1:9998;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
}

Maybe it is just me misunderstanding or misconfiguring?
Thanks a lot!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions