当初は
最初はWindows環境でDocker ComposeでMongodbとDjangoの2台構成で構築しようと検討したところ、 下記の件でうまく、docker専用のMongoを利用できなかったです。
<ダメだったImage>
https://hub.docker.com/_/mongo
理由は下記になります。
WINDOWSサブシステムFOR LINUX(WSL)-サポートされていません MongoDBはWSLをサポートしておらず、WSLのユーザーはWSLにインストールする際にさまざまな問題に直面しています。例については、以下を参照してください。
対処方法1
自分はOS上にMongoDBをインストールすることで対応しました。ですがMongodbとDjangoのサーバ間の通信がなぜかうまくいかなかったため。 WSLの影響かもしれない。(想定)
対処方法2
サーバーの通信ができないのであれば、MongoDBとPyhon環境を同居してしまうと思い、下記の設定ファイルにたどりつきました。
Dockerfile
FROM centos:latest ## Mongodb ADD ./containers/backend/mongodb/mongodb-org-4.2.repo /etc/yum.repos.d/ RUN yum -y update && yum install -y mongodb-org RUN mkdir -p /var/lib/mongo RUN mkdir -p /var/log/mongodb RUN mkdir -p /data/db/ RUN chown -R mongod:mongod /var/lib/mongo RUN chown -R mongod:mongod /var/log/mongodb RUN chown -R mongod:mongod /data/db/ ## Python RUN yum install -y wget RUN wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz RUN tar xzf Python-3.8.1.tgz RUN rm Python-3.8.1.tgz WORKDIR Python-3.8.1 RUN yum install -y gcc make RUN yum install -y bzip2-devel gdbm-devel libffi-devel \ libuuid-devel ncurses-devel openssl-devel readline-devel \ sqlite-devel tk-devel wget xz-devel zlib-devel RUN yum groupinstall -y "development tools" RUN ./configure --enable-optimizations RUN make altinstall ## Django RUN pip3.8 install --upgrade pip RUN pip3.8 install django RUN pip3.8 install pymongo RUN mkdir -p /srv/api/src/ WORKDIR /srv/api/src/ CMD ["/sbin/init", "mongod --fork --logpath /data/db/mongod.log"]
自分が検証しているPCはこちらです。