🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2396閲覧

構築したDocker イメージで生じるNon-UTF-8 code starting with '\x85' について

giro1975

総合スコア37

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/12/25 10:40

編集2019/12/25 14:02
docker build -t dash-azure . ```で 構築したDockerイメージを下記コードで実行します。

docker run -it --rm -p 7625:80 dash-azure

すると File "/bin/sh", line 1 SyntaxError: Non-UTF-8 code starting with '\x85' in file /bin/sh on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details とエラーが生じます。 該当のpythonコードは次になります。エラーを乗り越えたいです。よろしくお願いします。

-- coding: utf-8 --

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()
application = app.server

app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children= '''
This is Dash running on Azure App Service.
'''),
dcc.Graph(
id='example-graph',
figure={
'data':[
{'x':[1,2,3],'y':[4,1,2],'type':'bar','name':'SF'},
{'x':[1,2,3],'y':[2,4,5],'type':'bar','name':u'Montreal'},
],
'layout':{
'title':'Dash Data Visualization'
}
}
)
])
if name == 'main':
application.run(debug=True,host='0.0.0.0',port='80')

追記)使用したDockerfileは

FROM python:3.6-alpine

RUN mkdir /app

WORKDIR /app

ADD requirements.txt /app/

RUN pip install -r requirements.txt

ADD . /app/

ENTRYPOINT ["python"]

CMD ["application.py]

になります。 自分のMacはPython3.7.3 64-bitになります。 よろしくお願いします。 dash-azureにはDockerfile 、 application.py 、requirements.txtの3つのファイルがあります。 requirements.txtの中身は次のようになっています。

Click==7.0
dash==0.30.0
dash-html-components==0.13.2
dash-renderer==1.2.2
dash-table==3.1.7
Flask==1.1.1
Flask-Compress==1.4.0
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
plotly==4.4.1
retrying==1.3.3
six==1.13.0
Werkzeug==0.16.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2019/12/25 11:48

外字や顔文字とか地雷を踏みそうなデータがあったら、取りあえずデータを直して切り抜ける、って対処方法もありそうです。 差し支えなければ、エラーになったデータを質問に追記されては?
kit494way

2019/12/25 12:58

質問に記載の Python コードは問題なく動くようです。 Dockerfile と、利用している Python のバージョンを追記すると、回答が得られやすいかと思います。
giro1975

2019/12/25 13:47

kit494wqy様 ありがとうございます。追記しました。Docker使わなければ、自分も動きます。Dockerでビルドするとエラーがでます。
guest

回答2

0

ベストアンサー

理由はわからないですが、ENTRYPOINTpython を指定するのがまずいようですね。
ENTRYPOINT の記述を消して、CMD ["python", "application.py"] とすればよさそうです。

あと、記載いただいた Dockerfile の CMD はダブルクォートが閉じていないです。
また、requirements.txt では ModuleNotFoundError: No module named 'dash_core_components' がでます。
dash のバージョンがかなり古いようなので、requirements.txt 使わずに最新の dash をインストールしたら動きました。

投稿2019/12/25 15:15

kit494way

総合スコア317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何がどうなってかわかりませんが、python /bin/shと実行してしまっているようです。

投稿2019/12/25 13:53

otn

総合スコア85886

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giro1975

2019/12/25 15:04

そうなんですね。どこでそうなるのか調べてみます。
giro1975

2019/12/26 12:49

出来ました。ありがとうございます。 dash_core_componentsの情報もありがとうございます。スムーズに対応できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問