docker を諦める

docker はやっぱり難しいですね。
docker は諦めます。

docker 上に ubuntu 18.04 を設定していろいろやれば、mysql やら java やら flask も設定できます。

しかし、イメージの大きさが 1.4 GB にもなってしまい大きすぎる感じがします。

それほどまでしても、結局 docker をオフラインの linux mnt 19.1 に持っていくにはやはりそれなりの面倒な手続きが必要です。

それぐらいなら、linux mint にオフラインでいろいろインストールすればいいのです。

シェルスクリプトで自動インストール

pip3-python、python-flask、pymysql を自動でインストールするシェルスクリプトを作成します。

必要なファイルを apt-get install で集めておいて、以下のようなシェルスクリプトで自動的にインストールします。

以前書いたものと若干違っているような気がしますが、これで動きます。

これは「linut mint 19.1」用です。


#!/bin/bash

cd ~/flask/pip3-python
sudo dpkg -i python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb
sudo dpkg -i python3-keyrings.alt_3.0-1_all.deb
sudo dpkg -i python3-wheel_0.30.0-0.2_all.deb
sudo dpkg -i python3-asn1crypto_0.24.0-1_all.deb
sudo dpkg -i libc-dev-bin_2.27-3ubuntu1.5_amd64.deb
sudo dpkg -i python3-lib2to3_3.6.9-1~18.04_all.deb
sudo dpkg -i libc6-dev_2.27-3ubuntu1.5_amd64.deb
sudo dpkg -i python3-distutils_3.6.9-1~18.04_all.deb
sudo dpkg -i python3-cryptography_2.1.4-1ubuntu1.4_amd64.deb
sudo dpkg -i libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb
sudo dpkg -i python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb
sudo dpkg -i libexpat1-dev_2.2.5-3ubuntu0.7_amd64.deb
sudo dpkg -i python3-setuptools_39.0.1-2_all.deb
sudo dpkg -i python3-secretstorage_2.3.1-2_all.deb
sudo dpkg -i dh-python_3.20180325ubuntu2_all.deb
sudo dpkg -i python3-keyring_10.6.0-1_all.deb
sudo dpkg -i g++-7_7.5.0-3ubuntu1~18.04_amd64.deb
sudo dpkg -i libpython3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb
sudo dpkg -i g++_4%3a7.4.0-1ubuntu2.3_amd64.deb
sudo dpkg -i libpython3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb
sudo dpkg -i libpython3-dev_3.6.7-1~18.04_amd64.deb
sudo dpkg -i build-essential_12.4ubuntu1_amd64.deb
sudo dpkg -i python3-dev_3.6.7-1~18.04_amd64.deb

cd ~/flask/python-flask
sudo dpkg -i libjs-jquery_3.2.1-1_all.deb
sudo dpkg -i python3-werkzeug_0.14.1+dfsg1-1ubuntu0.1_all.deb
sudo dpkg -i python3-simplejson_3.13.2-1_amd64.deb
sudo dpkg -i python3-asn1crypto_0.24.0-1_all.deb
sudo dpkg -i python3-blinker_1.4+dfsg1-0.1_all.deb
sudo dpkg -i python3-jinja2_2.10-1ubuntu0.18.04.1_all.deb
sudo dpkg -i javascript-common_11_all.deb
sudo dpkg -i python3-itsdangerous_0.24+dfsg1-2_all.deb
sudo dpkg -i python3-cryptography_2.1.4-1ubuntu1.4_amd64.deb
sudo dpkg -i python3-flask_0.12.2-3ubuntu0.1_all.deb
sudo dpkg -i python3-openssl_17.5.0-1ubuntu1_all.deb

cd ~/flask/pymysql
pip3 install PyMySQL-1.0.2-py3-none-any.whl

python のデフォルト変更

python の確認。


ls /usr/bin/ | grep python

update-alternatives に python 3と python 3.6 を登録。


sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

「2」を選択すると python 3.6 がデフォルトになります。

以前からこの方法でやってますが、自動的に設定するシェルスクリプトを作るともっと便利かもしれません。

確認用の hello.py を作成して実行

本当に flask が動くのかを確認します。

hello.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World'

if __name__ == '__main__':
    app.debug = True
    app.run(host='0.0.0.0', port=8000)

実行。


python hello.py

アドレスバーに「http://0.0.0.0:8000/

java のバージョンも alternative で設定

python のバージョンと同じく、java のバージョンも alternative で変更できるようです。

例えば、「jdk1.8.0._231」を手に入れて、以下のようにして移動してします。


sudo mkdir /usr/local/java
sudo mv jdk1.8.0_231 /usr/local/java

linux mint 19.1 にはデフォルトで open jdk 11 が入っているので、java 8 を登録します。


sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_231/bin/java 2

例によって以下のようにしてデフォルトのバージョンを選択します。


sudo update-alternatives --config java

選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/local/java/jdk1.8.0_231/bin/java 2 自動モード
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1 手動モード
2 /usr/local/java/jdk1.8.0_231/bin/java 2 手動モード

python と java 設定を半自動化する

以下のようなシェルスクリプトを作成すれば、python と java の設定を半自動化できます。


#!/bin/bash

# 解凍
cd ~/
tar -zxvf appfile.tar.gz

# python 設定
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
sudo update-alternatives --config python

# java 設定
cd ~/appfile
sudo mkdir /usr/local/java
sudo mv jdk1.8.0_231 /usr/local/java
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_231/bin/java 2
sudo update-alternatives --config java