Closed inf3cti0n95 closed 2 months ago
@inf3cti0n95 Do you use Python built against glibc or official Alpine package? You should not mix libraries/binaries compiled against different libc. I can only suggest you try frolvlad/alpine-miniconda3
image, which bundles Miniconda Python distribution on top of Alpine + glibc.
The miniconda library works fine thanks!
@frol Is there a simple python3 version of this image. conda wont work for my entire project.
@inf3cti0n95 I am not aware of such an image, but you can try building your own by using Arch Linux packages following my mono image as an example.
I wonder what exactly is broken in miniconda so your project doesn’t work with it.
@frol I tried, But somehow that on throws me the same error.
I am experiencing the same behavior with docker-compose
:
ERROR: gcloud failed to load: Error relocating /tmp/_MEI7p4C7w/libz.so.1: __snprintf_chk: symbol not found
gcloud_main = _import_gcloud_main()
import googlecloudsdk.gcloud_main
from googlecloudsdk.api_lib.iamcredentials import util as iamcred_util
from googlecloudsdk.api_lib.util import apis_internal
from googlecloudsdk.api_lib.util import apis_util
from googlecloudsdk.core import exceptions
from googlecloudsdk.core.util import platforms
import subprocess
import pickle
import binascii as _binascii
This usually indicates corruption in your gcloud installation or problems with your Python interpreter.
Please verify that the following is the path to a working Python 2.7 executable:
/usr/bin/python2
If it is not, please set the CLOUDSDK_PYTHON environment variable to point to a working Python 2.7 executable.
If you are still experiencing problems, please reinstall the Cloud SDK using the instructions here:
https://cloud.google.com/sdk/
[223] Failed to execute script docker-compose
Traceback (most recent call last):
File "site-packages/dockerpycreds/store.py", line 74, in _execute
File "subprocess.py", line 336, in check_output
File "subprocess.py", line 418, in run
subprocess.CalledProcessError: Command '['/google-cloud-sdk/bin/docker-credential-gcloud', 'get']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "site-packages/docker/auth.py", line 129, in _resolve_authconfig_credstore
File "site-packages/dockerpycreds/store.py", line 35, in get
File "site-packages/dockerpycreds/store.py", line 87, in _execute
dockerpycreds.errors.StoreError: Credentials store docker-credential-gcloud exited with "".
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "bin/docker-compose", line 6, in <module>
File "compose/cli/main.py", line 71, in main
File "compose/cli/main.py", line 127, in perform_command
File "compose/cli/main.py", line 287, in build
File "compose/project.py", line 384, in build
File "compose/project.py", line 366, in build_service
File "compose/service.py", line 1082, in build
File "site-packages/docker/api/build.py", line 251, in build
File "site-packages/docker/api/build.py", line 313, in _set_auth_headers
File "site-packages/docker/auth.py", line 96, in resolve_authconfig
File "site-packages/docker/auth.py", line 146, in _resolve_authconfig_credstore
docker.errors.DockerException: Credentials store error: StoreError('Credentials store docker-credential-gcloud exited with "".',)
With the following image:
FROM node:11.10.0-alpine
RUN \
apk add --no-cache --update \
bash==4.4.19-r1 \
ca-certificates==20190108-r0 \
curl==7.64.0-r1 \
git==2.20.1-r0 \
libgcc==8.2.0-r2 \
libressl2.7-libcrypto==2.7.5-r0 \
openssl==1.1.1a-r1 \
python==2.7.15-r3
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
RUN \
export DOCKER_CHANNEL=stable && \
export DOCKER_VERSION=18.06.3-ce && \
curl -sfL -o docker.tgz https://download.docker.com/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz && \
tar xzf docker.tgz --strip-components 1 -C /usr/local/bin && \
rm docker.tgz
RUN \
export GLIBC=2.29-r0 && \
curl -sfL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub&& \
curl -sfLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/$GLIBC/glibc-$GLIBC.apk && \
apk add --no-cache glibc-$GLIBC.apk && \
rm glibc-$GLIBC.apk && \
ln -s /lib/libz.so.1 /usr/glibc-compat/lib/ && \
ln -s /lib/libc.musl-x86_64.so.1 /usr/glibc-compat/lib && \
ln -s /usr/lib/libgcc_s.so.1 /usr/glibc-compat/lib
RUN \
export DOCKER_COMPOSE_VERSION=1.23.2 && \
curl -sfL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose
ENV PATH /google-cloud-sdk/bin:$PATH
RUN \
export CLOUD_SDK_VERSION=237.0.0 && \
curl -sfLO https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
tar xzf google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
rm google-cloud-sdk-${CLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
gcloud config set core/disable_usage_reporting true && \
gcloud config set component_manager/disable_update_check true && \
gcloud components install beta
After my investigation I realized that docker-compose stops working if gcloud auth configure-docker
is called before docker-compose build
.
Looks like there are some incompatibilities between gcloud sdk
and docker-compose
, as mention in other places as well seems related to python
. Any idea how to get around this?
@inf3cti0n95 Do you use Python built against glibc or official Alpine package? You should not mix libraries/binaries compiled against different libc. I can only suggest you try
frolvlad/alpine-miniconda3
image, which bundles Miniconda Python distribution on top of Alpine + glibc.
It works, thanks
I'm so sorry for not responding to this bug report sooner. Without an example Dockerfile
it's hard to know what's causing these segmentation faults. If you're still experiencing this problem then would you please reply with an example Dockerfile
which reproduces the error.
I suggest that if you have chosen to run non-musl based software inside Alpine Linux because of the size of Alpine's Docker images then you and any other future readers in a situation like this should consider running containers based on Docker images that are based on a GNU C library, rather than trying to run binaries which weren't compiled for musl inside Alpine Linux. As an example, Debian currently provide "slim" Docker images for each of their releases which are ~ 30 MB compressed.
I am trying out a python library which depends on glibc and it throws error on alpine.