「docker-compose」で構築した「Django」のアップグレードを実施したのでまとめました。
※2020年12月時点での最新バージョンとなります。
※Djangoのバージョン最新情報は以下を参照ください。
https://openstandia.jp/oss_info/django/
また、「docker-compose」で構築したDjangoの構築手順は以下の記事を参考にしてください。
「Django」CentOS8環境でのアップグレード方法
Dockerで構築した「Django」のアップグレードは基本的には「docker-compose」を停止、起動することで実行されます。
まずは事前確認として、Django様に作成していた「docker-compose.yml」を確認します。
ここでは「2020年12月」時点で最新のバージョン「3」をインストールするので「version: ‘3’」が設定されていることを確認します。
$ cat docker-compose.yml version: '3' services: db: image: postgres ports: - 5432:5432 environment: - POSTGRES_PASSWORD=postgres volumes: - ./db-data:/var/lib/postgresql/data container_name: postgres web: restart: always build: . command: bash -c "python manage.py runserver 0.0.0.0:8000 --insecure && python manage.py migrate" volumes: - .:/code ports: - 8000:8000 depends_on: - db container_name: django https-portal: image: steveltn/https-portal:1 ports: - 80:80 - 443:443 links: - web restart: always environment: DOMAINS: 'test.com -> http://web:8000' STAGE: 'production' # Don't use production until staging works #FORCE_RENEW: 'true' container_name: https-portal volumes: - ./ssl_certs:/var/lib/https-portal volumes: db-data: ssl_certs:
Docker-CEを最新版にアップグレード
Djangoアップグレード前にCentOS、Docker-CEのバージョンを最新版にします。
バージョンアップ方法は以下を参照にします。
アップグレードコマンドは以下のコマンドとします。
※Docker以外のパッケージもアップグレードされます。
$ yum -y update
Djangoアップグレード実施
Dockerアップグレードを実施すると、Dockerコンテナは全て停止しますが、起動している場合は以下のコマンドでコンテナを停止します。
$ docker-compose stop Stopping https-portal ... done Stopping django ... done Stopping postgres ... done
Dockerコンテナが停止していることを確認します。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $
「-a」オプションでステータスが「Exited」となっていることを確認します。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d486b8893687 steveltn/https-portal:1 "/init" 3 months ago Exited (128) About a minute ago 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp https-portal 851c8b3c2974 django_web "bash -c 'python man…" 3 months ago Exited (137) About a minute ago 0.0.0.0:8000->8000/tcp django 325f830a7c1f postgres "docker-entrypoint.s…" 3 months ago Exited (137) About a minute ago postgres
OSアップグレードを実施したので起動前に一度再起動を実施します。
$ reboot
Django起動
再起動後、「docker-compose」コマンドを実施します。
「-d」オプションでバックグラウンドで起動させると以下のように、Djangoが「up-to-date」となります。
詳細なメッセージを確認したいのであれば、「-d」は付けずに起動しましょう。
$ docker-compose up -d Starting postgres ... done django is up-to-date https-portal is up-to-date
Djangoが正常に起動したら、以下コマンドでバージョンを確認します。
$ docker-compose exec web python --version Python 3.8.2
最新のバージョンが確認できたら完了です。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す