I am trying to create a Google Cloud Workstation
that has all of my required tooling built-in such as PHP, MYSQL and PYTHON with BZ2 support. I understand that this involves creating a custom container image. Here is the Dockerfile
that I used:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN apt-get update && apt-get install -y \
apache2 \
bzip2 \
libbz2-dev \
php
This installs the necessary modules, as far as I know. The next thing I did was docker run --rm -it --entrypoint=bash myimage:latest
to run the image locally. Then I used this command bzip2 --version
to verify that bz2 has been installed.
The next thing I did was to tag the image with the name of the Google Cloud Repository: docker tag myimage gcr.io/myproject/myimage:latest
and then push the image to the the repository with docker -- push gcr.io/myproject/myimage:latest
The next step was to launch a new workstation based on the custom image. When I did this I noticed that Python 3.10.7
was installed automatically without having to specify this in the Dockerfile
. When I launch python and try to import the bz2
module, I receive this error:
Python 3.10.7 (main, Jan 3 2023, 22:08:44) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.10/bz2.py", line 17, in <module>
from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'
What am I doing wrong?