Djangoアップグレード方法(docker-compose)CentOS8

「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

最新のバージョンが確認できたら完了です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!