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

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

新規登録して質問してみよう
ただいま回答率
87.20%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

受付中

ERROR: Failed building wheel for uwsgi

motwo253
motwo253

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0回答

0評価

0クリップ

4閲覧

投稿2020/08/15 13:32

前提・実現したい

Nginx + Django + DjangoChannels で構成された、Websocket 通信による非同期処理を実装した Web アプリケーションの開発を行っています。
docker for windows, docker-compose でビルドし、既に heroku 上にデプロイし運用しています。
開発環境をビルドし直したところ、正常にビルドできなくなっている状態です。

ディレクトリ構成

※ /project dir
※ | └docker-composer.yml
※ |
※ ├app/
※ | ├django.ini
※ | ├Dockerfile
※ | └requirement.txt
※ |
※ ├web/
※ | ├log/
※ | ├default.conf
※ | ├Dockerfile
※ | ├heroku.conf
※ | └uwsgi_params
※ |
※ ├worker/
※ | └Dockerfile

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

docker のコンテナ・イメージを全消去し、docker-compose build を叩いたところ以下エラーが出てしまいビルドできない状態です。

Building wheels for collected packages: uwsgi, psycopg2, PyYAML, django-allauth Building wheel for uwsgi (setup.py): started Building wheel for uwsgi (setup.py): finished with status 'error' ERROR: Command errored out with exit status 1: command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o32b_qp1/uwsgi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o32b_qp1/uwsgi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-b7s5zrg4 cwd: /tmp/pip-install-o32b_qp1/uwsgi/ Complete output (125 lines): using profile: buildconf/default.ini detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/8/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include'] /usr/local/lib/python3.7/site-packages/setuptools/dist.py:470: UserWarning: The version specified ('2.1-dev-418c0ca1') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % version running bdist_wheel running build running build_py creating build creating build/lib copying uwsgidecorators.py -> build/lib installing to build/bdist.linux-x86_64/wheel running install using profile: buildconf/default.ini detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/8/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include'] Patching "bin_name" to properly install_scripts dir detected CPU cores: 1 configured CFLAGS: -O2 -I. -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_UUID -DUWSGI_VERSION="\"2.1-dev-418c0ca1\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="1" -DUWSGI_VERSION_MINOR="0" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="\"dev-418c0ca1\"" -DUWSGI_YAML -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR="\".\"" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(gevent);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);UDEP(router_fcgi);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(gevent);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);ULEP(router_fcgi);" *** uWSGI compiling server core *** [gcc -pthread] core/utils.o [gcc -pthread] core/protocol.o [gcc -pthread] core/socket.o [gcc -pthread] core/logging.o [gcc -pthread] core/master.o ========= 省略 =================== [gcc -pthread] core/ssl.o [gcc -pthread] core/legion.o [gcc -pthread] core/xmlconf.o [gcc -pthread] core/dot_h.o [gcc -pthread] core/config_py.o *** uWSGI compiling embedded plugins *** Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-o32b_qp1/uwsgi/setup.py", line 150, in <module> install_requires=get_extra_require() File "/usr/local/lib/python3.7/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.7/distutils/core.py", line 148, in setup dist.run_commands() File "/usr/local/lib/python3.7/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/usr/local/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/usr/local/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 326, in run self.run_command('install') File "/usr/local/lib/python3.7/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/local/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/tmp/pip-install-o32b_qp1/uwsgi/setup.py", line 78, in run uc.build_uwsgi(conf) File "/tmp/pip-install-o32b_qp1/uwsgi/uwsgiconfig.py", line 463, in build_uwsgi path, up = get_plugin_up(path) File "/tmp/pip-install-o32b_qp1/uwsgi/uwsgiconfig.py", line 1414, in get_plugin_up execfile('%s/uwsgiplugin.py' % path, up) File "/tmp/pip-install-o32b_qp1/uwsgi/uwsgiconfig.py", line 1399, in execfile code = __builtins__.compile(py.read(), path, 'exec') AttributeError: 'dict' object has no attribute 'compile' ---------------------------------------- ERROR: Failed building wheel for uwsgi

該当のソースコード

Dockerfile - Woker

FROM python:3.7 ENV PYTHONUNBUFFERED 1 # Set up project root. RUN mkdir app WORKDIR /app # Install packages before copy sources, for building cache. COPY ./.docker/app/requirements.txt /app/.docker/app/requirements.txt RUN pip install -r /app/.docker/app/requirements.txt # Copy source codes. COPY . /app # Run application servers. # # [celery] Job worker # $ celery -A django_project worker --concurrency=1 -l debug # Attach mode. # $ celery -A django_project worker --detach --pidfile="/path" # Detach mode. CMD celery -A djangdock worker -l info

Dockerfile - app

FROM python:3.7 ENV PYTHONUNBUFFERED 1 # Set up project root. RUN mkdir app WORKDIR /app # Install packages before copy sources, for building cache. COPY ./.docker/app/requirements.txt /app/.docker/app/requirements.txt RUN pip install -r /app/.docker/app/requirements.txt # Copy source codes. COPY . /app # Run application servers. # # [uwsgi] HTTP # $ uwsgi --ini django.ini --master # Attach mode. # $ uwsgi --ini django.ini --master -d /path/to/logfile # Detach mode. # # [uvicorn] WebSocket # $ uvicorn django_project.asgi:application --reload # Hot reload for dev. # $ uvicorn django_project.asgi:application --host 127.0.0.1 --port 8000 # Attach mode. # $ uvicorn django_project.asgi:application --uds /tmp/uvicorn.sock # Using unix socket. # $ uvicorn django_project.asgi:application --ssl-keyfile hoge.key --ssl-certfile hoge.pem # SSL. ARG CREDENTIAL CMD uwsgi --ini /app/.docker/app/django.ini --master -d /dev/stdout && \ uvicorn djangdock.asgi:application --host 0.0.0.0 --port 443 --reload --proxy-headers --ssl-keyfile .credentials/${CREDENTIAL}.key --ssl-certfile .credentials/${CREDENTIAL}.crt

Dockerefile - web

FROM nginx:1.15.6 # Fix settings. ARG DOMAIN ARG CREDENTIAL COPY ./default.conf /etc/nginx/conf.d/default.conf RUN sed -e "s/DOMAIN/${DOMAIN}/g" -i /etc/nginx/conf.d/default.conf RUN sed -e "s/CREDENTIAL/${CREDENTIAL}/g" -i /etc/nginx/conf.d/default.conf RUN cat /etc/nginx/conf.d/default.conf # Run web server. CMD nginx -g "daemon off;"

requirements.txt

ipython django git+https://github.com/unbit/uwsgi.git@master#egg=uwsgi psycopg2 PyYAML dj-database-url django_extensions django-allauth uvicorn >= 0.8.1 channels channels-redis redis celery django-celery-results

試したこと

requirements.txt で git から uwsgi をクローンする記述をコメントアウトし、uwsgi を追加して docker-compose build を実行しました。
すると uwsgi 自体のビルドはできるのですが、docker-compose up するとコンソールに下記メッセージが出続けてしまいます。

uwsgi_check_logrotate()/lseek(): Illegal seek [core/logging.c line 494]

上記を避けるため、requirements.txt にて git から uwsgi をクローンしています。
https://github.com/unbit/uwsgi/pull/1855

エラー文に AttributeError: 'dict' object has no attribute 'compile' と出るのですが、該当する記事もなく具体的な解決方法を見つけることが出来ていない状態です。

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

platform
  • docker 19.03.1
  • docker-compose 1.24.1
back-end
  • nginx 1.15.6
  • postgres 11
  • redis 5.0.3
  • python 3.7
  • django 2.2.1
  • django/channels
  • django-celery-results
  • uwsgi
  • uvicorn
  • celery

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。