Docker-composeでdbコンテナが立ち上がらない
以前紹介したこちらの記事では,データベースにpostgresというものを使用していました.
challenge-think.hatenablog.com
別のパソコンでGithubからpullしてきて
docker-compose up
をすると,webコンテナは立ち上がるのですが,
dbのコンテナに以下のようなエラーが出てしまい.立ち上がってすぐにシャットダウンされてしまうという問題が発生しました.
PostgreSQL Database directory appears to contain a database; Skipping initialization
FATAL: could not open directory "pg_notify": No such file or directory
LOG: database system is shut down
ドッカーについての知識が全くないため,原因を追及するところまではできませんでしたが,以下のように書き換えるとひとまずエラーは抜けることができます. データベースをsqliteに変更する方法です.
Dockerfile
FROM python:3.9.13
WORKDIR ***
COPY requirements.txt ./
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
docker-compose.yml
version: '3'
services:
webapp:
restart: always
build: .
volumes:
- .:***
command: python3 manage.py runserver 0.0.0.0:8888
ports:
- "80:8888"
settings.py
~~~~~~~~~~~~~~
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
~~~~~~~~~~~~~~
以下に書き換え,再度
docker-compose up
をしたのちにブラウザで http //127.0.0.1
にアクセスするととりあえずは動くようになります. このようなエラーを吐いた原因についてはもう少しDockerに関して勉強してからに使用と思います.