skip to Main Content

i have this dockerfile:

FROM openjdk:11

COPY . .

RUN apt-get update -y
RUN apt-get install -y python

RUN mkdir -p /root/.ssh && 
    chmod 0700 /root/.ssh && 
    ssh-keyscan gitlab.com > /root/.ssh/known_hosts

ARG SSH_KEY=autofilled

RUN echo $SSH_KEY | python -c "key = raw_input();print "-----BEGIN OPENSSH PRIVATE KEY-----" + "\n" + "\n".join(key[i:i+64] for i in range(0, len(key), 64)) + "\n" + "-----END OPENSSH PRIVATE KEY-----"" > /root/.ssh/id_rsa

RUN chmod 600 /root/.ssh/id_rsa
RUN git submodule init
RUN git submodule update
RUN chmod -R +x ./sbt-dist
RUN chmod +x ./sbt
RUN ./sbt dist
WORKDIR ./target/universal
RUN unzip ./dist.zip
WORKDIR ./dist/bin
RUN chmod +x ./smart-flats
EXPOSE 5000
CMD ["./smart-flats", "-Dhttp.port=5000", "-J-Xmx1536m"]

but when i try to build it with latest docker version, i get this error:

Step 10/19 : RUN git submodule update
 ---> Running in dac2651ed54a
Cloning into '//tyrion-core'...
Warning: Permanently added the ECDSA host key for IP address '172.65.251.78' to the list of known hosts.
Load key "/root/.ssh/id_rsa": invalid format
[email protected]: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:byzance/tyrion-core.git' into submodule path '//tyrion-core' failed
Failed to clone 'tyrion-core'. Retry scheduled

Can anyone tell me, how should i repair this dockerfile? Thnanks!!

2

Answers


  1. Looks like you created your key in MacOS.

    Linux-based systems mostly using RSA type, but MacOS’s ssh-keygen generating OpenSSH ssh key by default, not RSA.

    RSA key should start from -----BEGIN RSA PRIVATE KEY-----
    But OpenSSH’s first line is -----BEGIN OPENSSH PRIVATE KEY-----

    Just create new RSA key or convert your OpenSSH key to RSA

    Login or Signup to reply.
  2. The number of characters per line might not be correct.

    I tested with this line and it generated the correct key :

    echo $SSH_KEY | python -c "key = raw_input();print "-----BEGIN OPENSSH PRIVATE KEY-----n" + "\n".join(key[i:i+70] for i in range(0, len(key), 71)) + "n-----END OPENSSH PRIVATE KEY-----""  > /root/.ssh/id_rsa
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search