2017-06-07 8 views
1

私はドッカー17.05.0-cs edgeをUbuntu 17.04 Zestyで使用しています。私はhereを構築したgunicorn/Djangoアプリを持っています。ドッキングされる前に正常に動作しますが、gunicornはdocker buildの後にstaticfilesを見ることができません。ここでDockerfileがある:それはbootstrap.cssまたはbootstrap.jsを見つけることができないと言っている間Gunicornはドッキングをした後にstaticfilesを見つけることができません

# Dockerfile 

# FROM base image to build upon 
FROM phusion/baseimage 

# RUN install python and pip 
RUN apt-get update 
RUN apt-get install -y python python-pip python-dev 

# ENV set environment directory tree 
ENV PROJECT=mysite 
ENV CONTAINER_HOME=/opt 
ENV CONTAINER_PROJECT=$CONTAINER_HOME/$PROJECT 

# move to project WORKDIR 
WORKDIR $CONTAINER_PROJECT 

# COPY project to container directory 
COPY . $CONTAINER_PROJECT 

# RUN pip and install requirements 
RUN pip install -r requirements.txt 


# COPY start.sh into known container location 
COPY start.sh /start.sh 

# EXPOSE port 8000 to allow communication to/from server 
EXPOSE 8000 

# CMD execute start.sh to start the server running. 
CMD ["/start.sh"] 
# done! 

アプリが実行され、ページを表示するには、面白い、それもcssテンプレートを適用します。メニューを切り替えるためにスクリプトを実行しません。現在のテンプレートは私の初期ビルドのアーティファクトに過ぎません。新しいテンプレートも使用されません。bootstrap.js私はかなり確信しています。それは実行されますが、私が知っているトグルが機能しないのは、bootstrap.jsの機能です。これはsudo docker run -it -p 8000:8000 dockerized_siteから出ている:

Starting Gunicorn. 
[2017-06-07 00:38:56 +0000] [1] [INFO] Starting gunicorn 19.6.0 
[2017-06-07 00:38:56 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1) 
[2017-06-07 00:38:56 +0000] [1] [INFO] Using worker: sync 
[2017-06-07 00:38:56 +0000] [9] [INFO] Booting worker with pid: 9 
[2017-06-07 00:38:56 +0000] [10] [INFO] Booting worker with pid: 10 
[2017-06-07 00:38:56 +0000] [11] [INFO] Booting worker with pid: 11 
Not Found: /js/bootstrap.min.js 
Not Found: /js/jquery.js 
Not Found: /js/bootstrap.min.js 
Not Found: /favicon.ico 

私は、これはコンテナのビルドに関係している、または多分settings.pyかなり確信している、urls.pyに静的ファイルのURLパターンを追加しました。おそらく私は静的ファイルの環境ディレクトリを追加する必要がありますか?もちろん、どんな助けも高く評価されています。

+1

あなたはgunicornが発生するエラーを投稿できますか? – Robert

答えて

1

これはあなたの問題である:

あなたcss年代には、[OK]を働いている:

<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet"> 

あなたjsさんが働いていません(404):

<script src="{% static '/js/jquery.js' %}"></script> 

は違いを参照してください?

/JSののパスの大手/

これはあなたの問題を修正:

<script src="{% static 'js/jquery.js' %}"></script> 

私はあなたのレポをクローニングして、テンプレートを固定し、私はあなたの問題を解決するために得ています。してください、もう一度修正してください s

+1

もう一度おねがいします!私はそれを修正し、習得した。 – ThisGuyCantEven

+0

いつも歓迎;) – Robert

1

静的ファイルの配置については、https://docs.djangoproject.com/en/1.11/howto/static-files/deployment/ を参照してください。

しかし、NginxやApacheなどのWebサーバーを使用して静的ファイルを提供したい場合があります。 Gunicornを使用して、特にプロダクションで静的ファイルを提供するべきではありません。 Gunicornは、動的コンテンツ用に作られたWSGIサーバーです。

+0

この場合、アプリケーションをドッキングするまで、静的ファイルが展開されます。私は最終的にNginxを使用します、私は今テストしています。 – ThisGuyCantEven

関連する問題