Closed4
dev_appserver.py (goruntime) が起動しない
普段 dev_appserver を Docker 内で動かして appengine のローカル開発を行っていた。
macOS と Docker をアップデートしたタイミングで以下のようなエラーが出るようになった。
Exception in thread WSGI select:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 172, in _loop_forever
self._select()
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 189, in _select
_READINESS_TIMEOUT_SECONDS * _SECONDS_TO_MILLISECONDS)]
error: (4, 'Interrupted system call')
エラーメッセージで調べても同じような症状の記事も見つからないので、ここにまとめることにする。
使っている Dockerfile はこんな感じ
# 450 以上ではエラーがでる `instance.py:284] [Errno 107] Transport endpoint is not connected`
FROM google/cloud-sdk:447.0.0
ENV GOLANG_VERSION 1.20.8
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/bin:$PATH
ENV ROOT=/app
WORKDIR ${ROOT}
RUN apt-get update -y
# python(python3), python2 がなければ dev_appserver が動かない
RUN ln /usr/bin/python3.9 /usr/bin/python \
&& ln /usr/bin/python2.7 /usr/bin/python2
RUN mkdir -p /usr/local/go \
&& curl -Lso go.tar.gz "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" \
&& tar -C /usr/local -xzf go.tar.gz \
&& rm go.tar.gz
ENV PATH="/usr/local/go/bin:${PATH}"
RUN GOPROXY=https://proxy.golang.org
RUN curl https://gotest-release.s3.amazonaws.com/gotest_linux > /usr/bin/gotest && chmod +x /usr/bin/gotest
# Makefile のタスクで dev_appserver.py を呼び出している
CMD [ "make", "serve" ]
macOS 上で dev_appserver.py
を実行するとエラーは発生しない。
ということは Docker のアップデートが原因?
Docker Desktop の 4.25.0
を使っていて 4.23.0
までダウングレードしてみたが変わらず。
macOS 14.1 Sonoma へのアップデートによって、dev_appserver が起動しなくなったと考えられる。
面倒だけど次は macOS のダウングレードか...
このスクラップは2023/11/09にクローズされました