【Docker】python(Flask)+GraphQL(graphene)+MySQL(sqlalchemy)の環境を構築する
はじめに
pythonのwebフレームワークのFlaskを用いてGraphQL環境をdockerを用いて構築する。
ここでは、docker,docker-composeについて説明する。grapheneの設定はPython (Flask) with GraphQL Server implementing SQLAlchemy, graphene, and SQLite を参照
必要ファイル、ディレクトリ
.
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── books/ ← 上記のサイトを参照
ファイルの内容
requirements.txt
requirements.txt
Flask==1.1.2
Flask-GraphQL==2.0.1
graphene==2.1.8
graphene-sqlalchemy==2.3.0.dev1
SQLAlchemy==1.3.17
pymysql
Dockerfile
Dockerfile
FROM python:3.7-slim
WORKDIR /mnt
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
docekr-compose.yml
docker-compose.yml
version: '2'
services:
graphql:
build: .
volumes:
- './:/mnt'
ports:
- "5000:5000"
tty: true
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: test
MYSQL_USER: test
MYSQL_PASSWORD: test
ports:
- "3306:3306"
.
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── books/ ← 上記のサイトを参照
requirements.txt
Flask==1.1.2
Flask-GraphQL==2.0.1
graphene==2.1.8
graphene-sqlalchemy==2.3.0.dev1
SQLAlchemy==1.3.17
pymysql
Dockerfile
FROM python:3.7-slim
WORKDIR /mnt
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
docekr-compose.yml
version: '2'
services:
graphql:
build: .
volumes:
- './:/mnt'
ports:
- "5000:5000"
tty: true
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: test
MYSQL_USER: test
MYSQL_PASSWORD: test
ports:
- "3306:3306"
他のファイルはPython (Flask) with GraphQL Server implementing SQLAlchemy, graphene, and SQLiteを参照
実行
以下のコマンドを実行する
$ docker-compose up -d
http://localhost:5000/graphql にアクセス
以下の画面が表示されれば成功!
Author And Source
この問題について(【Docker】python(Flask)+GraphQL(graphene)+MySQL(sqlalchemy)の環境を構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/hgaiji/items/0e0f90f04e11f374db4f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .