我正在尝试使用docker设置weweave Commerce。但是在步骤4上
使用诸如Traefik(或nginx或haproxy)之类的云原生边缘路由器: 将所有传入请求路由到/ api /到后端。 将所有其他传入请求路由到前端。
我该怎么做?我在weweave文档中找不到它,我也不了解traefik文档。
更新:我现在是从源代码构建的,并且可以正常运行。我将尝试给出的答案,如果可以的话会做出反应,因此,如果您有相同的问题,可以使用它。
答案 0 :(得分:0)
我设法使用以下撰写文件来启动和运行此文件。
在具有以下内容的新文件夹中创建一个config.json
文件:
{
"database": {
"driver": {
"type": "mysql",
"host": "mysql",
"port": 3306,
"username": "root",
"password": "my-secret-pw",
"database": "commerce"
},
"logging": ["error", "warn"]
},
"basePath": "/",
"session": {
"secret": "fkj49l7WwjUtqcfLZKlLA269J28kC4uL",
"issuer": "https://change.me",
"lifetime": "12h"
},
"importTldListOnStart": true
}
在具有以下内容的同一文件夹中创建docker-compose.yml
:
version: '3'
services:
# The reverse proxy service (Traefik)
reverse-proxy:
image: traefik # The official Traefik docker image
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80" # The HTTP port
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
mysql:
image: mysql:5.6
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: commerce
commerce:
image: weweave/commerce
ports:
- "3000:3000"
depends_on:
- "mysql"
volumes:
- ./config.json:/usr/src/app/config.json
labels:
- "traefik.frontend.rule=Host:commerce.docker.localhost;PathPrefix:/api/"
- "traefik.port=3000"
commerce-www:
image: weweave/commerce-www
ports:
- "8080:8080"
depends_on:
- "commerce"
labels:
- "traefik.frontend.rule=Host:commerce.docker.localhost"
用
docker-compose up -d
然后打开浏览器并导航至:http://commerce.docker.localhost