diff options
| author | Taras Madan <tarasmadan@google.com> | 2025-04-29 11:55:47 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2025-04-29 12:20:39 +0000 |
| commit | 4a62c0b1c427faab93b443697e66d2f1a9ae3f23 (patch) | |
| tree | ab639c4e6f8790ea4421f2e8675acae0d0e780e2 /tools/docker/env | |
| parent | aeb6ec69196736aadb8538796e2db8c80a499c98 (diff) | |
tools/docker/env: update gcloud to 519
It requires appengine dependency update to match golang versions.
gcloud-appengine-python patching is needed to fix #4785.
Diffstat (limited to 'tools/docker/env')
| -rw-r--r-- | tools/docker/env/Dockerfile | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/tools/docker/env/Dockerfile b/tools/docker/env/Dockerfile index e77a53073..f96d05d75 100644 --- a/tools/docker/env/Dockerfile +++ b/tools/docker/env/Dockerfile @@ -3,17 +3,6 @@ # See /tools/docker/README.md for details. -# Build Python2 in a separate container to facilitate caching. -FROM debian:bookworm AS python2-builder - -RUN apt-get update --allow-releaseinfo-change -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends \ - wget gcc make openssl libffi-dev libgdbm-dev libsqlite3-dev libssl-dev zlib1g-dev ca-certificates -RUN wget -O /tmp/Python-2.7.18.tgz 'https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz' -RUN cd /tmp/ && tar -zxf Python-2.7.18.tgz -RUN cd /tmp/Python-2.7.18 && ./configure --prefix=/python2/ -RUN cd /tmp/Python-2.7.18 && make -j4 && make altinstall - # Construct a /syzkaller folder. FROM debian:bookworm as syzkaller-folder WORKDIR /syzkaller @@ -117,10 +106,6 @@ RUN dpkg --add-architecture i386 && \ apt-get clean autoclean && \ rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/* -# Install Python 2.7. -COPY --from=python2-builder /python2/ /usr/local/ -RUN ln -s /usr/local/bin/python2.7 /usr/bin/python2 - # Copy the /syzkaller folder and set the toolchain environment variables. COPY --from=syzkaller-folder /syzkaller/ /syzkaller/ RUN chmod 0777 /syzkaller @@ -131,14 +116,17 @@ ENV SOURCEDIR_NETBSD /syzkaller/netbsd RUN apt-get install -y -q nodejs # Install gcloud sdk for dashboard/app tests. -# The newest version (as of 07/10/23) is 437, however, it seems to expect to be run with python3 -# (but still requires python2). But Go's aetest package still runs dev_appserver.py with python2.7. -# So let's use an older, but working sdk. -RUN curl https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-400.0.0-linux-x86_64.tar.gz | tar -C /usr/local -xz +RUN curl https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-519.0.0-linux-x86_64.tar.gz | tar -C /usr/local -xz ENV PATH /usr/local/google-cloud-sdk/bin:$PATH RUN gcloud components install --quiet app-engine-python app-engine-go app-engine-python-extras cloud-datastore-emulator RUN chmod 0777 /usr/local/google-cloud-sdk +# Patch gcloud app-engine-python to fix projected queries problem, see issue #4785. +RUN sed -i "s/entity\.key\.MergeFrom(original_entity\.key())/entity\.key\.MergeFrom(original_entity\.key)/g" \ + /usr/local/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py +RUN sed -i "s/array\.array('B', str(value_data))))/entity_pb2\.PropertyValue, array\.array('B', value_data)))/g" \ + /usr/local/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py + # The default Docker prompt is too ugly and takes the whole line: # I have no name!@0f3331d2fb54:~/gopath/src/github.com/google/syzkaller$ RUN echo "export PS1='syz-env🈴 '" > /syzkaller/.bashrc |
