フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

Centos8+Mongodb+Django(Python3.8)のDocker環境構築(Windows編)

当初は

最初は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はこちらです。