dingo_d
Estoy tratando de extraer el repositorio en el que estoy trabajando mientras hago una compilación de Docker, así que seguí este tutorial así que agregué en mi Dockerfile
# this is our first build stage, it will not persist in the final image
FROM ubuntu as intermediate
# install git
RUN apt-get update \
apt-get upgrade \
apt-get install git
# add credentials on build
RUN mkdir ~/.ssh && ln -s /run/secrets/host_ssh_key ~/.ssh/id_rsa
# make sure your domain is accepted
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.org >> /root/.ssh/known_hosts
RUN git clone git@github.com:my-repo/myproject.git
FROM ubuntu
# copy the repository form the previous image
COPY --from=intermediate /your-repo /srv/your-repo
En mi docker-compose.yml
yo añadí
secrets:
host_ssh_key:
file: ~/.ssh/id_rsa
y estoy agregando
secrets:
- host_ssh_key
En uno de los servicios.
Dado que esto es solo para mi uso local (no planeo implementar o usar esto para la producción, solo quiero probarlo), está bien usarlo de esta manera, si funciona porque actualmente la compilación falla en la etapa de instalación de git con error
E: El comando de actualización no toma argumentos
ERROR: el servicio ‘web’ no se pudo compilar: el comando ‘/bin/sh -c apt-get update apt-get upgrade apt-get install git’ devolvió un código distinto de cero: 100
¿Qué me estoy perdiendo?
Alex Karshin
Estás sobreanalizando esto. Es solo un simple error tipográfico. Debiera ser:
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git
Esos son 3 comandos separados.
-
Todavía recibiendo
The command '/bin/sh -c apt-get update && apt-get upgrade && apt-get install git' returned a non-zero code: 1
– dingo_d
13 de junio de 2018 a las 13:18
-
Es otro tema, ahora
apt-get install
está esperando que envíes la instalación. Entonces deberías agregar-y
despuésinstall
. Por tu error me parece que no sabes cómo trabajar con Linux. Tal vez deberías leer todo alrededorapt-get
?– Alex Karshin
13 de junio de 2018 a las 14:07
-
Probaré con la bandera, pero en general probablemente me saltearé el clon de git en el proceso de compilación. Al menos eso es lo que están haciendo los desarrolladores. Solo estoy probando la ventana acoplable, no es mi área principal de especialización: D
– dingo_d
13 de junio de 2018 a las 16:26
-
en nodo: alpine: EJECUTAR actualización de apk && \ actualización de apk && \ apk agregar git
– itzhar
17 de julio de 2019 a las 22:21
-
Correr
update
después de la instalación de git. Prueba ese:RUN apt-get install --assume-yes git && apt-get update && apt-get clean all
– Zhivko.Kostadinov
14 de junio a las 9:25
Para aquellos que trabajan con alpine
imágenes, RUN apk add --no-cache git
hizo el truco para mí.
-
Gracias, esto me ahorró algo de tiempo. Por favor, ¿por qué usaste —no-cache?
– Código de captura
11 de abril de 2021 a las 12:20
Emory
Algunos pensamientos:
-
- Reemplazar
apt-get install git
conapt-get install --assume-yes git
. Sin el--assume-yes
le pedirá confirmación, que no puede dar y será lo suficientemente inteligente como para darse cuenta y asumir que usted quiso decir “NO”.
- Reemplazar
-
- Agregó la clave ssh, pero ¿confirmó que era
0600
. Simplemente lo copiaría y específicamentechmod 0600 ~/.ssh/id_rsa
para estar seguro.
- Agregó la clave ssh, pero ¿confirmó que era
En general, su Dockerfile se ve muy inteligente y obtuve algunas ideas nuevas al leerlo.
-
Acabo de leer el tutorial – muy bueno. Ellos usan el
-y
cambiar. Yo uso el--assume-yes
cambiar. Son sinónimos y creo que eso es lo que te estás perdiendo. Si proporcionó un archivo ‘id_rsa’ válido, entonces mi segundo punto no es aplicable.– Emory
13 de junio de 2018 a las 13:53
-
su edición de la pregunta debe revertirse, claramente entra en conflicto con la intención del autor.
– Alex Karshin
13 de junio de 2018 a las 14:12
¿Hay alguna posibilidad de que puedas aceptar una respuesta? Para que indique a los demás que alguna solución fue útil para usted. Sería genial si lo hiciera en todas sus preguntas que tienen respuestas.
– Alex Karshin
16 de abril de 2019 a las 10:22
Claro, aunque al final lo hice de otra manera. Gracias por la ayuda 🙂
– dingo_d
16 de abril de 2019 a las 12:53
Sí, está bien para local y, de hecho, ni siquiera es una idea terrible para un servidor de desarrollo (¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡)
– Shayne
15 de julio a las 3:24