質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

4909閲覧

DockerでDjango環境構築時に"django-admin.py": executable file not found in $PATH: unknownエラーが出る

GEORGIA

総合スコア7

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/11/29 12:58

前提

Dcokerで、Django, MySQL, NGINXの環境を作っています。
startproject実行時にエラーが出ています。
↓のサイトを参考に環境構築中です。
https://qiita.com/kenkono/items/6221ad12670d1ae8b1dd

実現したいこと

・DockerでDjango, MySQL, NGINXで構成されているWebシステムを構築する。

発生している問題・エラーメッセージ

Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "django-admin.py": executable file not found in $PATH: unknown

該当のソースコード

以下のフォルダ構成と設定ファイルを用意して「docker-compose run python django-admin.py startproject todopj .」を実行

■フォルダ構成
workフォルダ
L backupフォルダ
L mysqlフォルダ
L nginxフォルダ
l  L confフォルダ
l  l  L app_nginx.conf
l  L uwsgi_params
L pythonフォルダ
l  L Dockerfile
l  L requirements.txt
L sqlフォルダ
l  L init.sql
L srcフォルダ  
L staticフォルダ
L docker-compose.yml

docker-compose.ymlの中身

version: '3' services: nginx: image: nginx:1.23 ports: - "8000:8000" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params - ./nginx/log:/var/log/nginx - ./static:/static depends_on: - python environment: TZ: 'Asia/Tokyo' db: image: mysql:8.0 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: **** MYSQL_DATABASE: **** MYSQL_USER: **** MYSQL_PASSWORD: **** MYSQL_TCP_PORT: 3306 TZ: 'Asia/Tokyo' volumes: - ./mysql:/var/lib/mysql - ./sql:/docker-entrypoint-initdb.d - ./backup:/var/lib/backup python: build: ./python command: uwsgi --socket :8001 --module todopj.wsgi --py-autoreload 1 --logto /tmp/mylog.log volumes: - ./src:/code - ./static:/static expose: - "8001" depends_on: - db environment: TZ: 'Asia/Tokyo'

Dockerfilrの中身

FROM python:3.11.0 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install --upgrade pip RUN pip install -r requirements.txt ADD . /code/

requirements.txtの中身

Django==4.1.3 uwsgi==2.0.21 mysqlclient==2.1.1 django-bootstrap5==22.1 django-widget-tweaks==1.4.12 django-bootstrap-datepicker-plus==4.0.0 django-extra-views==0.14.0 django-bootstrap-modal-forms==2.2.0

uwsgi_paramsの中身

uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REQUEST_SCHEME $scheme; uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name;

app_nginx.confの中身

upstream django { ip_hash; server python:8001; } server { listen 8000; server_name 127.0.0.1; charset utf-8; location /static { alias /static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; server_tokens off;

試したこと

↓のサイトを参考にして、「docker-compose build」を実行
https://qiita.com/yCroma/items/1d362042351fb17c512a

補足情報(FW/ツールのバージョンなど)

Docker version 20.10.21
OSはAWSのEC2上のUbuntu

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

なぜか、requirements.txtのDjango の部分を「Django>=3.0,<4.0」にすれば成功しました。

投稿2022/11/30 14:44

GEORGIA

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これは元記事が間違えてますね。

shell

1# 誤 2docker-compose run python django-admin.py startproject app . 3 4# 正 5docker-compose run python python /code/django-admin.py startproject app .

ひとつめのpythonはコンテナ名、ふたつめのpythonはコマンド名です。

投稿2022/11/29 13:23

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GEORGIA

2022/11/30 14:44

ありがとうございます。 ご教示いただいたコマンドを実行しても、解決できませんでしたが、 なぜか、requirements.txtのDjango の部分を「Django>=3.0,<4.0」にすれば成功しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問