Reputation: 11670
I'm trying to pull the repository I'm working on while doing a docker build, so I followed this tutorial so I added in my 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 [email protected]:my-repo/myproject.git
FROM ubuntu
# copy the repository form the previous image
COPY --from=intermediate /your-repo /srv/your-repo
In my docker-compose.yml
I added
secrets:
host_ssh_key:
file: ~/.ssh/id_rsa
And I'm adding
secrets:
- host_ssh_key
In one of the service.
Since this is only for my local use (I don't plan on deploying or using this for the production, I just want to test it out) it's fine to use it this way - if it'll work because currently the build fails at the git install stage with error
E: The update command takes no arguments
ERROR: Service 'web' failed to build: The command '/bin/sh -c apt-get update apt-get upgrade apt-get install git' returned a non-zero code: 100
What am I missing?
Upvotes: 65
Views: 118644
Reputation: 4511
For those working with alpine
images, RUN apk add --no-cache git
did the trick for me.
Upvotes: 20
Reputation: 10891
Some thoughts:
apt-get install git
with apt-get install --assume-yes git
. Without the --assume-yes
it will prompt you for confirmation, which you are unable to give and it will be smart enough to figure that out and assume you meant "NO".0600
. I would just copy it and specifically chmod 0600 ~/.ssh/id_rsa
to be sure.Overall, your Dockerfile looks very clever and I got some fresh ideas from reading it.
Upvotes: 14
Reputation: 14185
You are overanalyzing this. It's just a simple typo. Should be:
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git
Those are 3 separate commands.
Upvotes: 139