首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FastAPI + Appwrite.io在码头-编写prod/dev设置?

FastAPI + Appwrite.io在码头-编写prod/dev设置?
EN

Stack Overflow用户
提问于 2021-01-27 16:24:55
回答 1查看 477关注 0票数 1

了解了appwrite.io和我真的很喜欢appwrite提供的特性。它类似于Firebase,但开源。

我正试图使appwrite与Python/FastAPI一起工作。

将该项目的文件夹结构下垂。文件夹api将包含所有附加逻辑。Dockerfile是从乌维克恩-古尼克恩-快艇-码头回购中提取的。

代码语言:javascript
复制
├── project
│   ├── docker-compose.yml
│   ├── app
│      ├── api 
│      ├── Dockerfile
│      ├── main.py
│      ├── requirements.txt
└── 

在坞-撰写文件中,我添加了启动FastAPI的FastAPI服务。

代码语言:javascript
复制
version: '3'

services:

    app:
        build: ./app
        ports:
            - 3000:3000
        restart: unless-stopped
        volumes:
            - ./app:/usr/src/app
            
    traefik:
        image: traefik:v2.1.4
        command:
            - --providers.file.directory=/storage/config
            - --providers.file.watch=true
            - --providers.docker=true
            - --entrypoints.web.address=:80
            - --entrypoints.websecure.address=:443
        restart: unless-stopped
        ports:
            - 5000:80
            - 443:443
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - appwrite-config:/storage/config:ro
            - appwrite-certificates:/storage/certificates:ro
        depends_on:
            - appwrite
        networks:
            - gateway
            - appwrite
    
    appwrite:
        image: appwrite/appwrite:0.6.2
        restart: unless-stopped
        networks:
            - appwrite
        labels:
            - traefik.http.routers.appwrite.rule=PathPrefix(`/`)
            - traefik.http.routers.appwrite-secure.rule=PathPrefix(`/`)
            - traefik.http.routers.appwrite-secure.tls=true
        volumes:
            - appwrite-uploads:/storage/uploads:rw
            - appwrite-cache:/storage/cache:rw
            - appwrite-config:/storage/config:rw
            - appwrite-certificates:/storage/certificates:rw
        depends_on:
            - mariadb
            - redis
            - smtp
            - influxdb
            - telegraf
        environment:
            - _APP_ENV=production
            - _APP_OPENSSL_KEY_V1=your-secret-key
            - _APP_DOMAIN=localhost
            - _APP_DOMAIN_TARGET=localhost
            - _APP_REDIS_HOST=redis
            - _APP_REDIS_PORT=6379
            - _APP_DB_HOST=mariadb
            - _APP_DB_PORT=3306
            - _APP_DB_SCHEMA=appwrite
            - _APP_DB_USER=user
            - _APP_DB_PASS=password
            - _APP_INFLUXDB_HOST=influxdb
            - _APP_INFLUXDB_PORT=8086
            - _APP_STATSD_HOST=telegraf
            - _APP_STATSD_PORT=8125
            - _APP_SMTP_HOST=smtp
            - _APP_SMTP_PORT=25

    mariadb:
        image: appwrite/mariadb:1.0.3
        restart: unless-stopped
        networks:
            - appwrite
        volumes:
            - appwrite-mariadb:/var/lib/mysql:rw
        environment:
            - MYSQL_ROOT_PASSWORD=rootsecretpassword
            - MYSQL_DATABASE=appwrite
            - MYSQL_USER=user
            - MYSQL_PASSWORD=password
        command: 'mysqld --innodb-flush-method=fsync'

    smtp:
        image: appwrite/smtp:1.0.1
        restart: unless-stopped
        networks:
            - appwrite
        environment:
            - MAILNAME=appwrite
            - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16

    redis:
        image: redis:5.0
        restart: unless-stopped
        networks:
            - appwrite
        volumes:
            - appwrite-redis:/data:rw

    
    influxdb:
        image: influxdb:1.6
        restart: unless-stopped
        networks:
            - appwrite
        volumes:
            - appwrite-influxdb:/var/lib/influxdb:rw

    telegraf:
        image: appwrite/telegraf:1.0.0
        restart: unless-stopped
        networks:
            - appwrite

networks:
    gateway:
    appwrite:

volumes:
    appwrite-mariadb:
    appwrite-redis:
    appwrite-cache:
    appwrite-uploads:
    appwrite-certificates:
    appwrite-influxdb:
    appwrite-config:

我试过码头-撰写linksnetworksappwrite,但他们都没有工作。Bellow是我尝试使用pythonapp写sdk时遇到的错误。

代码语言:javascript
复制
{"result":"HTTPConnectionPool(host='localhost', port=5000): Max retries exceeded with url: /v1/database/collections (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f5517795d60>: Failed to establish a new connection: [Errno 111] Connection refused'))"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-27 10:15:47

将自定义码头容器添加到应用程序

https://dev.to/streamlux/adding-custom-docker-containers-to-appwrite-2chp

亦可参阅-

学习如何使用您自己的自定义代理运行Appwrite或加载平衡器

https://dev.to/appwrite/learn-how-to-run-appwrite-with-your-own-custom-proxy-or-load-balancer-28k

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65923229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档