※こちらは旧サイトです(新サイトはこちら)
うちの自宅サーバが逝ってしまって、ポートフォリオが見れなくなってしまったので、DockernizeしてGCEにとりあえずコンテナとして放り込んでおこうと移植した際に遭遇した事象
元の構成はこんな感じ
今回移行先となる、GCEの無料枠プラン(物理メモリ500MBちょい)だと非力すぎて、uWSGIをEmperorで動かす利点がほぼないため、dockerfiles/django-uwsgi-nginxで公開されてるDockerfileを借りることにしました
しかし、Djangoの方はさくっと移行終わったものの、WebSocketだけ、KeyError:'HTTP_SEC_WEBSOCKET_KEY'
が出てhandshakeでこける
uwsgi.websocket_handshake(env['HTTP_SEC_WEBSOCKET_KEY'], env.get('HTTP_ORIGIN', ''))
dockerfiles/django-uwsgi-nginxのままだとSSLサポートが有効になっておらず、SSLサポート付きでbuildしてやる必要がありました
以下、やったことメモ
ENV CFLAGS="-I/usr/local/opt/openssl/include"
ENV LDFLAGS "-L/usr/local/opt/openssl/lib"
ENV UWSGI_PROFILE_OVERRIDE "ssl=true"
RUN pip3 install uwsgi -I
RUN apt-get install -y libssl-dev