NSPManager / NSPanelManager

Sonoff NSPanel custom firmware for responsive and intuitive use
https://nspanelmanager.com/
128 stars 10 forks source link

Add Docker compose file? #101

Closed aaronouthier closed 8 months ago

aaronouthier commented 8 months ago

What would it take to get a docker-compose.yml file created for this project?

I don't understand enough about json/yaml to create it myself. I can usually figure out enough to adapt an existing compose file to my needs, but currently there is nothing for me to adapt.

There is no way I'g going to type that docker run command every time, and the method I'm using now (cd docker; ./docker-build-and-run.sh) hasn't worked for the last week or so, due to a compilation error of some kind. I have pulled the latest source with git.

tpanajott commented 8 months ago

Getting a docker-compose example up should be pretty quick. Though you should probably download the zip from the releases tab or download a specific release tag in git to have it working. Could you elaborate more on what error you are getting when trying to compile?

Also, what machine are you running this on?

aaronouthier commented 8 months ago

x64 virtual machine. Debian 12 VM/docker host.

` => ERROR [7/7] RUN pip install -r requirements.txt 192.0s


[7/7] RUN pip install -r requirements.txt:
2.797 Collecting asgiref==3.6.0 (from -r requirements.txt (line 1))
2.985 Downloading asgiref-3.6.0-py3-none-any.whl (23 kB)
3.067 Collecting certifi==2022.12.7 (from -r requirements.txt (line 2))
3.079 Downloading certifi-2022.12.7-py3-none-any.whl (155 kB) 3.119 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.3/155.3 kB 4.1 MB/s eta 0:00:00 3.353 Collecting charset-normalizer==3.0.1 (from -r requirements.txt (line 3)) 3.363 Downloading charset_normalizer-3.0.1-py3-none-any.whl (45 kB) 3.381 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.5/45.5 kB 3.1 MB/s eta 0:00:00 3.610 Collecting Django==4.1.7 (from -r requirements.txt (line 4)) 3.620 Downloading Django-4.1.7-py3-none-any.whl (8.1 MB) 5.024 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 5.8 MB/s eta 0:00:00 5.129 Collecting django-environ==0.10.0 (from -r requirements.txt (line 5)) 5.146 Downloading django_environ-0.10.0-py2.py3-none-any.whl (19 kB) 5.200 Collecting django-mathfilters==1.0.0 (from -r requirements.txt (line 6)) 5.209 Downloading django_mathfilters-1.0.0-py3-none-any.whl (5.9 kB) 5.326 Collecting django-ranged-response==0.2.0 (from -r requirements.txt (line 7)) 5.336 Downloading django-ranged-response-0.2.0.tar.gz (3.0 kB) 5.351 Preparing metadata (setup.py): started 5.802 Preparing metadata (setup.py): finished with status 'done' 6.156 Collecting gevent==22.10.2 (from -r requirements.txt (line 8)) 6.173 Downloading gevent-22.10.2.tar.gz (6.6 MB) 6.930 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 8.7 MB/s eta 0:00:00 7.719 Installing build dependencies: started 15.02 Installing build dependencies: finished with status 'done' 15.02 Getting requirements to build wheel: started 21.09 Getting requirements to build wheel: finished with status 'done' 21.10 Installing backend dependencies: started 22.20 Installing backend dependencies: finished with status 'done' 22.20 Preparing metadata (pyproject.toml): started 23.36 Preparing metadata (pyproject.toml): finished with status 'done' 23.77 Collecting greenlet==2.0.2 (from -r requirements.txt (line 9)) 23.78 Downloading greenlet-2.0.2.tar.gz (164 kB) 23.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.0/165.0 kB 4.1 MB/s eta 0:00:00 23.87 Preparing metadata (setup.py): started 24.15 Preparing metadata (setup.py): finished with status 'done' 24.20 Collecting idna==3.4 (from -r requirements.txt (line 10)) 24.21 Downloading idna-3.4-py3-none-any.whl (61 kB) 24.24 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 2.6 MB/s eta 0:00:00 24.29 Collecting paho-mqtt==1.6.1 (from -r requirements.txt (line 11)) 24.30 Downloading paho-mqtt-1.6.1.tar.gz (99 kB) 24.34 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.4/99.4 kB 2.9 MB/s eta 0:00:00 24.36 Preparing metadata (setup.py): started 24.59 Preparing metadata (setup.py): finished with status 'done' 24.69 Collecting pip-upgrade==0.0.6 (from -r requirements.txt (line 12)) 24.71 Downloading pip-upgrade-0.0.6.zip (6.3 kB) 24.73 Preparing metadata (setup.py): started 24.94 Preparing metadata (setup.py): finished with status 'done' 25.20 Collecting psutil==5.9.4 (from -r requirements.txt (line 13)) 25.21 Downloading psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280 kB) 25.27 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 280.2/280.2 kB 5.2 MB/s eta 0:00:00 25.39 Collecting pytz==2023.3 (from -r requirements.txt (line 14)) 25.42 Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB) 25.53 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.3/502.3 kB 4.5 MB/s eta 0:00:00 25.64 Collecting requests==2.28.2 (from -r requirements.txt (line 15)) 25.65 Downloading requests-2.28.2-py3-none-any.whl (62 kB) 25.68 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 2.4 MB/s eta 0:00:00 25.72 Collecting sqlparse==0.4.3 (from -r requirements.txt (line 16)) 25.73 Downloading sqlparse-0.4.3-py3-none-any.whl (42 kB) 25.75 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 kB 2.6 MB/s eta 0:00:00 25.85 Collecting urllib3==1.26.14 (from -r requirements.txt (line 17)) 25.87 Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB) 25.90 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.6/140.6 kB 4.2 MB/s eta 0:00:00 25.99 Collecting websocket-client==1.6.1 (from -r requirements.txt (line 18)) 25.99 Obtaining dependency information for websocket-client==1.6.1 from https://files.pythonhosted.org/packages/d3/a3/63e9329c8cc9be6153e919e17d0ef5b60d537fed78564872951b95bcc17c/websocket_client-1.6.1-py3-none-any.whl.metadata 26.00 Downloading websocket_client-1.6.1-py3-none-any.whl.metadata (7.6 kB) 26.25 Collecting websockets==10.4 (from -r requirements.txt (line 19)) 26.27 Downloading websockets-10.4.tar.gz (84 kB) 26.30 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.9/84.9 kB 3.2 MB/s eta 0:00:00 26.33 Preparing metadata (setup.py): started 26.57 Preparing metadata (setup.py): finished with status 'done' 26.62 Collecting zope.event==4.6 (from -r requirements.txt (line 20)) 26.63 Downloading zope.event-4.6-py2.py3-none-any.whl (6.8 kB) 26.97 Collecting zope.interface==5.5.2 (from -r requirements.txt (line 21)) 26.98 Downloading zope.interface-5.5.2.tar.gz (300 kB) 27.04 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 300.5/300.5 kB 5.1 MB/s eta 0:00:00 27.10 Preparing metadata (setup.py): started 27.36 Preparing metadata (setup.py): finished with status 'done' 27.51 Requirement already satisfied: setuptools in /usr/local/lib/python3.12/site-packages (from gevent==22.10.2->-r requirements.txt (line 8)) (68.2.2) 27.53 Requirement already satisfied: pip>=1.5.1 in /usr/local/lib/python3.12/site-packages (from pip-upgrade==0.0.6->-r requirements.txt (line 12)) (23.2.1) 27.74 Downloading websocket_client-1.6.1-py3-none-any.whl (56 kB) 27.78 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.9/56.9 kB 1.6 MB/s eta 0:00:00 27.78 Building wheels for collected packages: django-ranged-response, gevent, greenlet, paho-mqtt, pip-upgrade, websockets, zope.interface 27.79 Building wheel for django-ranged-response (setup.py): started 28.11 Building wheel for django-ranged-response (setup.py): finished with status 'done' 28.11 Created wheel for django-ranged-response: filename=django_ranged_response-0.2.0-py3-none-any.whl size=3112 sha256=bd82288ee2803fe2e57ca691e9316c694d6abbdfdbf8961e1c6db4b96c557c03 28.11 Stored in directory: /root/.cache/pip/wheels/23/44/39/248ccd444cf68eed86a06582ef2a5d0bf762de7dd74a857106 28.12 Building wheel for gevent (pyproject.toml): started 91.87 Building wheel for gevent (pyproject.toml): still running... 153.5 Building wheel for gevent (pyproject.toml): still running... 187.1 Building wheel for gevent (pyproject.toml): finished with status 'done' 187.2 Created wheel for gevent: filename=gevent-22.10.2-cp312-cp312-linux_x86_64.whl size=6676740 sha256=6620873ae1bfb1c2046fb975119aaaebb3b1b83922be7e1c9ae080dd830bc147 187.2 Stored in directory: /root/.cache/pip/wheels/49/47/a4/d447aaeeb50c2aa56e8cf5ab39ccc9f7e52ce02d288971ba96 187.2 Building wheel for greenlet (setup.py): started 188.6 Building wheel for greenlet (setup.py): finished with status 'error' 188.7 error: subprocess-exited-with-error 188.7
188.7 × python setup.py bdist_wheel did not run successfully. 188.7 │ exit code: 1 188.7 ╰─> [143 lines of output] 188.7 running bdist_wheel 188.7 running build 188.7 running build_py 188.7 creating build 188.7 creating build/lib.linux-x86_64-cpython-312 188.7 creating build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/init.py -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 creating build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/leakcheck.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/init.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_generator.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_cpp.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_tracing.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_gc.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_throw.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_leaks.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_weakref.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_version.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 creating build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/init.py -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 running egg_info 188.7 writing src/greenlet.egg-info/PKG-INFO 188.7 writing dependency_links to src/greenlet.egg-info/dependency_links.txt 188.7 writing requirements to src/greenlet.egg-info/requires.txt 188.7 writing top-level names to src/greenlet.egg-info/top_level.txt 188.7 reading manifest file 'src/greenlet.egg-info/SOURCES.txt' 188.7 reading manifest template 'MANIFEST.in' 188.7 warning: no previously-included files found matching 'benchmarks/.json' 188.7 no previously-included directories found matching 'docs/_build' 188.7 warning: no files found matching '.py' under directory 'appveyor' 188.7 warning: no previously-included files matching '.pyc' found anywhere in distribution 188.7 warning: no previously-included files matching '.pyd' found anywhere in distribution 188.7 warning: no previously-included files matching '.so' found anywhere in distribution 188.7 warning: no previously-included files matching '.coverage' found anywhere in distribution 188.7 adding license file 'LICENSE' 188.7 adding license file 'LICENSE.PSF' 188.7 adding license file 'AUTHORS' 188.7 writing manifest file 'src/greenlet.egg-info/SOURCES.txt' 188.7 copying src/greenlet/greenlet.cpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet.h -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_allocator.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_exceptions.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_greenlet.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_internal.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_refs.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_thread_state.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/greenlet_thread_support.hpp -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/slp_platformselect.h -> build/lib.linux-x86_64-cpython-312/greenlet 188.7 copying src/greenlet/tests/_test_extension.c -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-x86_64-cpython-312/greenlet/tests 188.7 copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-x86_64-cpython-312/greenlet/platform 188.7 running build_ext 188.7 building 'greenlet._greenlet' extension 188.7 creating build/temp.linux-x86_64-cpython-312 188.7 creating build/temp.linux-x86_64-cpython-312/src 188.7 creating build/temp.linux-x86_64-cpython-312/src/greenlet 188.7 gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/usr/local/include/python3.12 -c src/greenlet/greenlet.cpp -o build/temp.linux-x86_64-cpython-312/src/greenlet/greenlet.o 188.7 In file included from src/greenlet/greenlet_internal.hpp:20, 188.7 from src/greenlet/greenlet.cpp:19: 188.7 src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::operator<<(const PyThreadState)’: 188.7 src/greenlet/greenlet_greenlet.hpp:831:41: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’ 188.7 831 | this->use_tracing = tstate->cframe->use_tracing; 188.7 | ^~~ 188.7 src/greenlet/greenlet_greenlet.hpp:834:37: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’? 188.7 834 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; 188.7 | ^~~~~~~ 188.7 | py_recursion_limit 188.7 src/greenlet/greenlet_greenlet.hpp:834:63: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’? 188.7 834 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; 188.7 | ^~~~~~~ 188.7 | c_recursion_remaining 188.7 src/greenlet/greenlet_greenlet.hpp:848:42: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘trash_delete_nesting’ 188.7 848 | this->trash_delete_nesting = tstate->trash_delete_nesting; 188.7 | ^~~~~~~~ 188.7 src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::operator>>(PyThreadState)’: 188.7 src/greenlet/greenlet_greenlet.hpp:867:21: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’ 188.7 867 | tstate->cframe->use_tracing = this->use_tracing; 188.7 | ^~~ 188.7 src/greenlet/greenlet_greenlet.hpp:870:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’? 188.7 870 | tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth; 188.7 | ^~~~~~~ 188.7 | c_recursion_remaining 188.7 src/greenlet/greenlet_greenlet.hpp:870:43: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’? 188.7 870 | tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth; 188.7 | ^~~~~~~ 188.7 | py_recursion_limit 188.7 src/greenlet/greenlet_greenlet.hpp:881:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash_delete_nesting’ 188.7 881 | tstate->trash_delete_nesting = this->trash_delete_nesting; 188.7 | ^~~~~~~~ 188.7 src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::will_switch_from(PyThreadState)’: 188.7 src/greenlet/greenlet_greenlet.hpp:891:48: error: ‘_PyCFrame’ {aka ‘struct _PyCFrame’} has no member named ‘use_tracing’ 188.7 891 | this->use_tracing = origin_tstate->cframe->use_tracing; 188.7 | ^~~ 188.7 src/greenlet/greenlet_greenlet.hpp: In member function ‘void greenlet::PythonState::set_initial_state(const PyThreadState)’: 188.7 src/greenlet/greenlet_greenlet.hpp:899:37: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_limit’; did you mean ‘py_recursion_limit’? 188.7 899 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; 188.7 | ^~~~~~~ 188.7 | py_recursion_limit 188.7 src/greenlet/greenlet_greenlet.hpp:899:63: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘recursion_remaining’; did you mean ‘c_recursion_remaining’? 188.7 899 | this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; 188.7 | ^~~~~~~ 188.7 | c_recursion_remaining 188.7 src/greenlet/greenlet.cpp: In function ‘PyObject mod_get_tstate_trash_delete_nesting(PyObject*)’: 188.7 src/greenlet/greenlet.cpp:3095:36: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash_delete_nesting’ 188.7 3095 | return PyLong_FromLong(tstate->trash_delete_nesting); 188.7 | ^~~~~~~~ 188.7 error: command '/usr/bin/gcc' failed with exit code 1 188.7 [end of output] 188.7
188.7 note: This error originates from a subprocess, and is likely not a problem with pip. 188.7 ERROR: Failed building wheel for greenlet 188.7 Running setup.py clean for greenlet 188.9 Building wheel for paho-mqtt (setup.py): started 189.2 Building wheel for paho-mqtt (setup.py): finished with status 'done' 189.2 Created wheel for paho-mqtt: filename=paho_mqtt-1.6.1-py3-none-any.whl size=62118 sha256=146e43e843884fda70768bc9ed476eb4039f2892fa7f85d826e23ee1585d5118 189.2 Stored in directory: /root/.cache/pip/wheels/23/d5/af/1f3cbcc350dec9d8e95040f388e0163d132eff0c9a453db659 189.2 Building wheel for pip-upgrade (setup.py): started 189.5 Building wheel for pip-upgrade (setup.py): finished with status 'done' 189.5 Created wheel for pip-upgrade: filename=pip_upgrade-0.0.6-py3-none-any.whl size=4243 sha256=690ebfd90a2f6113939598438ba2b3bcbbaba7600a0338f2c95126fd501d7243 189.5 Stored in directory: /root/.cache/pip/wheels/37/f7/7d/e6da59dc3637856a160d5a853b5bd97c2f7193c6f354b1e471 189.5 Building wheel for websockets (setup.py): started 190.1 Building wheel for websockets (setup.py): finished with status 'done' 190.1 Created wheel for websockets: filename=websockets-10.4-cp312-cp312-linux_x86_64.whl size=106398 sha256=7c03a4a40b06526ba6d7b9e9d89338e01ca640f06bbfb42ea1ba2a3ef359a9f7 190.1 Stored in directory: /root/.cache/pip/wheels/80/cf/6d/5d7e4c920cb41925a178b2d2621889c520d648bab487b1d7fd 190.1 Building wheel for zope.interface (setup.py): started 191.4 Building wheel for zope.interface (setup.py): finished with status 'done' 191.4 Created wheel for zope.interface: filename=zope.interface-5.5.2-cp312-cp312-linux_x86_64.whl size=258250 sha256=45ad8106f3d6447eae971595095bf52c8cee508af5be10cf7d023b912960aec0 191.4 Stored in directory: /root/.cache/pip/wheels/d7/68/a1/7301ca42c4948514c48d0f912fcf049cb19121ee77767f8a12 191.4 Successfully built django-ranged-response gevent paho-mqtt pip-upgrade websockets zope.interface 191.4 Failed to build greenlet 191.4 ERROR: Could not build wheels for greenlet, which is required to install pyproject.toml-based projects

Dockerfile:15

13 | WORKDIR /usr/src/app 14 | COPY web/ /usr/src/app/ 15 | >>> RUN pip install -r requirements.txt 16 |
17 | EXPOSE 8000

ERROR: failed to solve: process "/bin/sh -c pip install -r requirements.txt" did not complete successfully: exit code: 1`

aaronouthier commented 8 months ago

Also, I have very basic familiarity with git. I was trying to figure out how to download a specific release.

tpanajott commented 8 months ago

Strange. Thanks for the logs, will try to look into it later. Regarding using a specific release you can have a look here: https://stackoverflow.com/a/792027

aaronouthier commented 8 months ago

I wonder if I need to be logged-in as root in order to succeed? Currently, I am running as a member of the docker group. I have also tried downloading again (via git clone) to a different folder name, but get stuck in the same place.

I need to 'git' back to sleep now. It's 2 AM. I got up to hit the head, and checked my email on my way back to bed...

tpanajott commented 8 months ago

I've now added a docker-compose example under the advanced setup in the manual.