A medida que se inicia mi contenedor Docker, necesito ejecutar esta línea:
cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2Ambos archivos solo existen en el contenedor Docker después de que se hayan instalado algunos paquetes.
En el Dockerfile, he intentado:
RUN cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 COPY /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 ENTRYPOINT ["cp","/lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2"]Y también creó un script bash que contiene (entre otras cosas) esta línea. Sé que la secuencia de comandos se ejecutó porque los otros cambios que realiza están presentes, pero el archivo no se copia.
#!/bin/sh apk add build-base apk add libc6-compat cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2Entonces corre con
RUN ./my_bash_script.shSin embargo, cuando uso la línea de comando en el contenedor Docker y ejecuto la línea manualmente, funciona.
¿Por qué los comandos de Dockerfile no copian este archivo?
Editar: Mi Dockerfile completo
FROM golang:alpine ENV APP_NAME hello-world ADD env_setup.sh . RUN chmod +x env_setup.sh RUN ./env_setup.sh WORKDIR /home/helloworld ADD vendor/ ./vendor/ COPY main.go . COPY go.mod .Se pueden especificar varios recursos, pero las rutas de los archivos y directorios se interpretarán como relativas a la fuente del contexto de la compilación.
Intente primero copiar el archivo en el directorio local donde se encuentra el Dockerfile
Entonces
COPY libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2