DockerでDjangoを動かしてみる
DockerでDjangoを動かしてみる
Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.network "forwarded_port", guest: 80, host: 80 config.vm.provider "virtualbox" do |vb| vb.name = "hogehoge" end config.vm.provision :docker config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", run: "always" end
docker-compose.yml
version: '3' services: hoge: build: . image: hoge-img container_name: hoge ports: - 80:80 volumes: - /vagrant/hoge:/hoge
Dockerfile
FROM ubuntu RUN apt update ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Tokyo RUN apt install -y tzdata RUN apt install -y python3 python3-pip python3-django VOLUME /hoge WORKDIR /hoge EXPOSE 80 CMD ["python3", "manage.py", "runserver", "0.0.0.0:80"]
vagrantで起動。
> vagrant up
接続する。
> vagrant ssh
Djangoのプロジェクトがまだないため、dockerはエラーで起動していない。
$ cd /vagrant $ docker-compose ps Name Command State Ports ------------------------------------------------------ hoge python3 manage.py runserve ... Exit 2 $ docker-compose logs Attaching to hoge hoge | python3: can't open file 'manage.py': [Errno 2] No such file or directory
Djangoのプロジェクトを作成し、
$ docker-compose run hoge django-admin startproject sample_app . $ ls hoge/ manage.py sample_app
改めて起動。
$ docker-compose up -d
ブラウザからDjangoの画面が確認できる。