備忘録

頭の整理のために書いています

UnicodeEncodeError:

はい。
Pythonでコーディングしていると、よく見かけるエラーですが、

例えば、下記のエラーが出た場合は、標準出力を問答無用でencodeしてあげれば、とりあえず黙ってくれます。

'ascii' codec can't encode characters in position...

import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

では、happy hacking!!

コンテナ内のファイル をローカルに落とす方法

はい。


コンテナにexec、もしくはattachして直接開発環境をつくっていたら、ホスト側が置いてけぼりになることが多々あるかと思います。

そんな時に便利なコマンドがdocker cpコマンドです。

使い方はいたって簡単

$ docker cp CONTAINER_ID:{containerFilePath} {hostFilePath}

例えば、ホストマシンのカレントにコンテナ内のhogeディレクトリ一式をコピーしたければ、こんな感じ。

$ docker cp 456: /root/hoge ./


以上、よきコンテナライフを。

ubuntuでnodeの実行環境をつくる

はい。

所謂、MERNスタックを試してみたいと思い公式ubuntuイメージをベースにしてnode環境を作りました。


まずは、リポジトリの更新

$ apt-get update -y

$ apt-get install -y nodejs npm

$ npm cache clean

$ npm install n -g

curlwgetがいるって言われるので

$ apt install -y curl

$ n stable

$ ln -sf /usr/local/bin/node /usr/bin/node


## 確認

$ node -v

## お掃除

$ apt-get purge -y nodejs npm


おっつ。

https://hub.docker.com/r/leica19/node-ubuntu/

※でぶでぶなイメージなので、各自ダイエットさせて下さいまし。

djangoのdebug toolbarがくそ便利

導入方法

pipでイントール

$ pip install django-debug-toolbar

リポジトリ

github.com

settings.pyに設定

if DEBUG:
    INTERNAL_IPS = ('127.0.0.1',)
    MIDDLEWARE += (
        'debug_toolbar.middleware.DebugToolbarMiddleware',
    )

    INSTALLED_APPS += (
        'debug_toolbar',
    )

    DEBUG_TOOLBAR_PANELS = [
        'debug_toolbar.panels.versions.VersionsPanel',
        'debug_toolbar.panels.timer.TimerPanel',
        'debug_toolbar.panels.settings.SettingsPanel',
        'debug_toolbar.panels.headers.HeadersPanel',
        'debug_toolbar.panels.request.RequestPanel',
        'debug_toolbar.panels.sql.SQLPanel',
        'debug_toolbar.panels.staticfiles.StaticFilesPanel',
        'debug_toolbar.panels.templates.TemplatesPanel',
        'debug_toolbar.panels.cache.CachePanel',
        'debug_toolbar.panels.signals.SignalsPanel',
        'debug_toolbar.panels.logging.LoggingPanel',
        'debug_toolbar.panels.redirects.RedirectsPanel',
    ]

    DEBUG_TOOLBAR_CONFIG = {
        'INTERCEPT_REDIRECTS': False,
    }

表示されているパネルは、リスト:DEBUG_TOOLBAR_PANELS で管理されていますので、
表示したくないパネルがあれば、該当のvalueコメントアウト

urls.pyに追加

from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin


urlpatterns = [
    # sample
    url(r'^admin/', admin.site.urls),
]

if settings.DEBUG:
    import debug_toolbar
    urlpatterns += (
        url(r'^your_app/', include(debug_toolbar.urls)),
    )

your_appは随時変更してちょんまげ。

docker imageを全部削除する方法

はい。

ローカルのimageを一度全部削除して、環境の整理をしたいことがあるかと思います。


まずは、コンテナの全削除

$ docker ps -aq | xargs docker rm

次に、イメージの削除

$ docker images -aq | xargs docker rmi [-f]


以上、あでぃおす。


というか、aliasにした方がいいね。笑
github.com