Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]

introduction

Je m'appelle Ryosuke Kamei et je suis consultant en informatique basé sur l'idée du "doux IT"! Actuellement, dans mon travail, je fais des processus en amont centrés sur l'analyse des exigences et la définition des exigences, mais comme j'écris également des programmes autres que mon activité principale, j'écrirai des articles techniques! Présentation des programmes de biens et services créés avec «Raspberry Pi 3» (communément appelé «Raspberry Pi»), qui a pour philosophie de «fournir des PC bon marché pouvant être programmés pour l'éducation» dans le cadre d'activités informatiques conviviales!

Objectif

Créez un environnement Python-MySQL avec Docker sur Raspai. Raspeye a eu du mal avec peu d'images car l'architecture est très différente. Tout d'abord, enregistrez le processus d'essais et d'erreurs. Si cela fonctionne, j'écrirai la version de construction facile!

Différences architecturales

Comme Raspai est basé sur l'architecture armv7l, Docker doit également utiliser une image basée sur l'architecture armv7l, mais la situation actuelle est qu'il y en a peu.

Lorsque vous cherchez une image de tarte aux râpes

Les images qui peuvent être utilisées avec Raspeye ont "rpi-", veuillez donc vous y référer lors de la recherche.

table des matières

  1. Préparation
  2. Lancez hypriot / rpi-python
  3. Installez les bibliothèques requises pour l'installation de Python3
  4. Installez Python3
  5. Installez pip3
  6. Installez les outils nécessaires au développement Python
  7. Bouteille prête à installer
  8. Vérifiez si le serveur fonctionne
  9. Installez le pilote MySQL
  10. Créer des données dans la base de données
  11. Placez le script sur le serveur d'applications
  12. Lancez l'application

1. Préparation

Si vous ne disposez pas de Docker ou d'environnement de développement, veuillez vous reporter à ce qui suit. Si Docker est installé, vous pouvez l'ignorer!

1-1. Installez Dokcer

Voir Installer Docker sur RaspberryPi3!

1-2. Fonctions pratiques (SSH / VNC / AFP)

Il est pratique de mettre en œuvre le chapitre suivant de Installation du Raspberry Pi 3 → LAN sans fil → Entrée / sortie japonaise → fonctionnement depuis Mac (serveur SSH / VNC / AFP).

  1. Accès par SSH
  2. Paramètres VNC (utilisez Raspeye depuis Mac avec GUI)
  3. Paramètres AFP (accéder au système de fichiers Raspai sur Mac)

2. Lancez hypriot / rpi-python

Un pirate (rires) qui se fait appeler hypriot fournit une image de tarte aux râpes, donc je suis reconnaissant de l'utiliser.

hypriot/rpi-Démarrez python et connectez-vous avec bash


sudo docker run -it hypriot/rpi-python /bin/bash

Si vous y réfléchissez bien, cette image est basée sur Python 2.7 ... (au 4 septembre 2016) Je veux en faire la série Python3, alors installez-la.

3. Installez les bibliothèques requises pour l'installation de Python3

La magie habituelle (mises à jour et mises à jour de la bibliothèque)


# apt-get update
# apt-get upgrade -y

Essayez d'installer une bibliothèque qui semble être nécessaire


# apt-get install -y vim
# apt-get install -y sudo
# apt-get install -y wget
# apt-get install -y git

4. Installez Python3

4-1. Installez les bibliothèques requises pour l'installation de Python3.

Installez les bibliothèques requises pour l'installation de Python3


# apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev

4-2. Installez Python3

Python3 compile à partir des sources. (J'ai touché make and make install pour la première fois en 10 ans à cause de l'installation de Python3)

Télécharger la source Python 3


# wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Extrayez le fichier Python-3.5.2.tgz compressé avec tar.

bash:Python-3.5.2.Développer tgz


# tar xvf Python-3.5.2.tgz 

Bouge toi

Bouge toi


# cd Python-3.5.2

Installez avec make. (Cela prendra un certain temps)

Installer avec make


# ./configure && make && make install

Vérifiez lorsque l'installation est terminée.

Confirmer l'installation de Python3


# python3 -V

5. Installez pip3

Installer pip3


# apt-get install -y python3-pip

PIP3 amélioré


# pip3 install --upgrade pip

Confirmer l'installation de pip3


# pip3 -V

6. Installez les outils nécessaires au développement Python

Si vous souhaitez en savoir plus, veuillez demander à M. Google.

Construction d'environnement de développement virtuel Virtualenv


# pip3 install virtualenv

Flacon à cadre léger


# pip3 install bottle

Extension du mode interactif Python ipython


# pip3 install ipython

Style de codage/Vérifiez la syntaxe flake8


# pip3 install flake8

7. Créer un utilisateur

Créer des groupes et des utilisateurs


# groupadd web
# useradd -d /home/bottle -m bottle

Connectez-vous en tant qu'utilisateur créé


# su -m bottle
$ 

aucun problème!

8. Vérifiez si le serveur fonctionne

index avec vim.Créer du HTML (l'utilisateur est une bouteille)


$ vim index.html

index.html


<html>
<body>
Bonjour le monde
</body>
</html>

Commencez avec HTTP simple


$ python3 -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 ...

Accès avec un navigateur ラズパイとDocker.png

9. Installez le pilote MySQL

Téléchargez mysql-connector-python avec git clone

clone git


# git clone https://github.com/mysql/mysql-connector-python.git

Bouge toi


# cd mysql-connector-python

Construire et installer


# python3 ./setup.py build
# python3 ./setup.py install

10. Créer des données dans la base de données

Quittez le serveur d'applications une fois. Tapez Contrôle + P, Contrôle + Q.

Connectez-vous au serveur de base de données. S'il est déjà en cours d'exécution, connectez-vous avec la commande suivante.

Connectez-vous au serveur de base de données


pi@raspberrypi $ sudo docker exec -it {Nom du conteneur du serveur de base de données}

Connectez-vous à MySQL


mysql_server # mysql -u{Nom d'utilisateur} -p
(Entrer le mot de passe)

Accéder à la base de données (en supposant qu'elle existe déjà)


mysql> use sample;

Créer une table


mysql>
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Insérer des données


mysql>
INSERT INTO `users` (`id`, `name`) VALUES (1, 'pyhons');

Quittez MySQL


mysql> quit;

Quittez le conteneur de base de données


mysql_server # (Contrl + p, Control + q)

11. Placez le script sur le serveur d'applications

Connectez-vous au serveur d'applications


pi@raspberrypi $ sudo docker exec -it {Nom du conteneur du serveur d'applications}

Se déplacer dans un endroit approprié


# cd /home/bottle

server.Créer py


# vim server.py

server.py


from bottle import route, run
#Le pilote MySQL est mysql.connector
import mysql.connector
#L'adresse IP de l'hôte est$ docker inspect {Nom du conteneur de base de données}Découvrez dans
#Les utilisateurs, mots de passe et bases de données MySQL sont docker-compose.Ce qui a été défini avec yml
connector = mysql.connector.connect(
            user='python',
            password='python',
            host='178.10.0.3', #Adresse IP du serveur de base de données
            database='sample'  #Base de données créée
)

cursor = connector.cursor()
cursor.execute("select * from users")

disp = ""
for row in cursor.fetchall():
    disp = "ID:" + str(row[0]) + "Nom:" + row[1]

cursor.close
connector.close
			
@route('/hello')
def hello():

    return "Obtenu de DB"+disp

run(host='0.0.0.0', port=8080, debug=True, reloader=True)

12. Lancez l'application

Lancement d'application


# /usr/local/bin/python3 /home/bottle/server.py

Lorsqu'il est ouvert dans un navigateur スクリーンショット 2016-09-04 14.18.55.png

Dans le prochain article, j'essaierai de le démarrer d'un seul coup avec Dockerfile et dokcer-compose.yml. (Est-ce grand? Est-ce grand?)

plan du site

Configuration du Raspberry Pi 3

Installation du Raspberry Pi 3 → LAN sans fil → Entrée / sortie japonaise → opération depuis Mac

Créez un environnement Python + MySQL avec Docker sur Raspberry Pi 3!

Installer Docker sur RaspberryPi3 Créez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3![Construction facile] Créez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3![Essai et erreur]

Fabriquez un climatiseur intégré à un ordinateur personnel "airpi" avec Raspberry Pi 3!

Faire un climatiseur intégré PC "airpi" avec Raspberry Pi 3!

Enfin ... Créez un contrôleur radio en utilisant python sur Raspberry Pi 3!

Le moteur se déplace en appuyant sur le bouton Le moteur se déplace tout en rapprochant l'aimant Le moteur se déplace lorsque l'aimant est rapproché et s'arrête automatiquement

Jouons avec Raspberry Pi 3 et Python Record of Raspberry Lutte

Programmation avec programmation Node-RED avec Raspberry Pi 3 et programmation normale Allumez la LED avec python sur Raspberry Pi 3 (Hello World) Détecter l'état du commutateur avec Raspberry Pi 3 Exécutez un servomoteur en utilisant python sur Raspberry Pi 3 Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3! Détectez l'interrupteur à glissière à l'aide de python sur Raspberry Pi 3! Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3! Détectez la température en utilisant python sur Raspberry Pi 3! Raspberry Pi 3 utilise python pour faire sonner le buzzer! Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3! Détectez la "luminosité" en utilisant python sur Raspberry Pi 3! Détectez la "température (en utilisant le convertisseur A / N)" en utilisant python sur Raspberry Pi 3! Sortie vers "7 segments LED" en utilisant python sur Raspberry Pi 3! Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur! Utilisez python sur Raspberry Pi 3 et allumez la LED quand il fait noir!

Règles axées sur le développement piloté par les tests

Règles de codage "Écrivons du code doux" (FuelPHP) Règles de dénomination "Membres sympathiques pour vous-même, conviviaux pour l'équipe et invisibles après 3 mois"

Développement d'applications Web avec Docker + Python

Installez Python3 et les bibliothèques associées pip, virtualenv et framework Django, bouteille, Flask sur CentOS sur Docker! Avec un Dockerfile qui résume ces derniers!

Construction d'environnement facile à développer (Docker + PHP)

Lier l'environnement PHP + Eclipse à Apache à l'aide de Docker Création d'un environnement de développement Fuel PHP à l'aide de Docker Création d'un squelette CRUD à l'aide des paramètres initiaux de l'environnement de développement FuelPHP à l'aide de Docker et de l'échafaudage Migration de la base de données FuelPHP

Recommended Posts

Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Construire un environnement Mysql + Python avec docker
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Créez un environnement python avec ansible sur centos6
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Comment créer un environnement Django (python) sur Docker
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créer un environnement python3 sur CentOS7
Créer un environnement Jupyter Lab (Python) avec Docker
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Construire un environnement python sur MacOS (Catallina)
Un mémo contenant Python2.7 et Python3 dans CentOS
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Créer un environnement Python avec Anaconda sur Mac
[Linux] Créer un environnement Jenkins avec Docker
Créez un environnement virtuel pour python avec pyenv
Créer un environnement Python + OpenCV sur Cloud9
Créez un environnement Python moderne avec Neovim
Construire un environnement de NGINX + NGINX Unit + MySQL avec Docker
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X
Créez un environnement LAMP sur votre Docker local
Créez un environnement WardPress sur AWS avec Pulumi
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Construire un environnement python avec virtualenv et direnv
Créez simplement un environnement d'exécution Python 3 sous Windows
Construire un environnement Django sur Raspai (MySQL)
Créer un environnement Python sur Mac (Mountain Lion)
Créer un environnement de construction python3 avec Sublime Text3
Créez un environnement de développement Python sur votre Mac
Créez un environnement virtuel avec pyenv et venv
Construire un environnement Python avec OSX Elcapitan
Créez rapidement un environnement Python Django avec IntelliJ
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Construire un environnement de développement Python sur Raspberry Pi
Créer un environnement d'exécution python avec VS Code
Créer un environnement de développement à l'aide de Jupyter et Flask avec Python dans Docker (prend en charge à la fois VS Code / code-server)
Créer un environnement de développement TensorFlow sur Amazon EC2 avec une copie de commande
Créez un environnement de développement local avec WSL + Docker Desktop pour Windows + docker-lambda + Python
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Installez Python 3 sur Mac et créez un environnement [Definitive Edition]
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Création d'un environnement de travail Docker R et Python
Créer un environnement Python d'apprentissage automatique sur Mac OS
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement de développement Python sur Mac OS X
Construire un environnement virtuel Python en utilisant venv (Django + MySQL ①)
Créez un environnement Python sur votre Mac en utilisant pyenv
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Créez un environnement shell et python décent sur Windows