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


「docker-compose」で構築した「Django」のアップグレードを実施したのでまとめました。
※2020年12月時点での最新バージョンとなります。

※Djangoのバージョン最新情報は以下を参照ください。
https://openstandia.jp/oss_info/django/

また、「docker-compose」で構築したDjangoの構築手順は以下の記事を参考にしてください。

【Docker】Webサイトを無料でSSL(HTTPS)化する方法

2020年5月9日

「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-CE】アップグレード手順(CentOS8)

2020年12月1日

アップグレードコマンドは以下のコマンドとします。
※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

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


関連記事


コメントを残す

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

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

ABOUTこの記事をかいた人

blank

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