No I did not do that, but I finally figured out that it was a logical 
problem with my code. I also added the console logging just in case. I 
think I got stuff running and connecting, but now I get a cryptic error 
message:
Truncated or oversized response headers received from daemon process 
'localhost:80': /tmp/mod_wsgi-localhost:80:1001/htdocs/robots.txt

Now when it regards a specific problem I will include information about my 
setup:
Host: Ubuntu 16.04
Docker 17.06
Python 3.5

My Django app is connected to a MySQL (8.0) db in a separate container, 
setup as:

docker run -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw 
-d mysql:latest


My project directory has structure:
-- my_project

-- .whiskey

-- action_hooks

-- build 

-- server_args

-- my_django_project

-- Dockerfile

-- fig.yml

-- requirements.txt 

 

The my_django_project contains a htdocs created through collectstatic.

My Dockerfile is:
FROM grahamdumpleton/mod-wsgi-docker:python-3.5-onbuild


USER $MOD_WSGI_USER:$MOD_WSGI_GROUP


 My fig.yml is slightly configured to connect to the mysql container:
version: '3'

services:
  db:
    image: some_mysql
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/my_django_project
    ports:
      - "8000:80"
    depends_on:
      - db

My requirements.txt file contains all my requirements, including Django, 
mysql-connector and mysqlclient. The rest of the files are copied (modified 
arguments) from the tutorial/example, and should not be any surprises. 

I build the project simply by running:
sudo docker build -t my_project .

One thing that I have noticed causing a problem in my project is that I am 
running custom MySQL queries from my Python code (thus the mysql-connector 
and mysqlclient requirements), which I realise is not ideal. But I have 
solved that by linking the MySQL container explicitly to the Django 
container in the run command by:
sudo docker run -it --rm -p 8000:80 --name my_running_app --link some_mysql 
my_project
And changing the Django app to use the database provided by localhost and 
the custom MySQL queries to access the database through the some_mysql 
containers IP address. Not sure if this is the most efficient way of 
solving it, and a future improvement would be to refactor all MySQL queries 
to use the Django interface, but I do currently not know how to refactor 
that efficiently.

I read somewhere that this might be a problem with the mod_wsgi or Apache 
version, do you think a possible fix would be to explicitly change the 
mod_wsgi version in the Dockerfile from grahamdumpleton/mod-wsgi-server?

Johan

 





On Thursday, 10 August 2017 20:56:12 UTC-4, Graham Dumpleton wrote:
>
>
> On 11 Aug 2017, at 9:44 am, Johan Larsson Hörkén <[email protected] 
> <javascript:>> wrote:
>
> I have been struggling to deploy my Django project in a good way for a 
> while now, and I am still a bit novice in Docker. I followed the steps on 
> http://blog.dscpl.com.au/2014/12/hosting-python-wsgi-applications-using.html 
> and 
> the Django example. The build goes fine, but when I run it I get a 500 
> Server Error, with no error messages in the Docker prompt. I am not sure 
> how to proceed, is there a way to get the wsgi logs, or is there an obvious 
> step that I have missed?
>
>
> Can you show me the Dockefile you are using?
>
> Have you configured Django in the settings file to log to the terminal?
>
> LOGGING = {
>     'version': 1,
>     'disable_existing_loggers': False,
>     'handlers': {
>         'console': {
>             'class': 'logging.StreamHandler',
>         },
>     },
>     'loggers': {
>         'django': {
>             'handlers': ['console'],
>             'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
>         },
>     },
> }
>
>
> Graham
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to