# What is the appropriate way to clone packages in dockerfile?

**URL:** https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066
**Category:** General Usage
**Tags:** question
**Created:** [November 1, 2018, 7:27pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066 "2018-11-01T19:27:08Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![jwu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jwu/32/3775_2.png) [@jwu](https://discourse.julialang.org/u/jwu)
#### Post date: [November 1, 2018, 7:27pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/1 "2018-11-01T19:27:08Z")

</div>

I am trying to clone or add a package from my repo in dockerfile, I am using:

`RUN julia -e 'import Pkg; Pkg.clone("https://github.com/jingpengw/GoogleCloud.jl.git")'`

but I was told that I should use add rather than clone

```julia
┌ Warning: Pkg.clone is only kept for legacy CI script reasons, please use `add`
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:445

```

after I replace the clone with add, I got errors. I am probably not using it correctly. The terminal hint is not quite explicit.

---

<div class="post-metadata">

### Author: ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)
#### Post date: [November 1, 2018, 7:28pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/2 "2018-11-01T19:28:11Z")

</div>

Well, what errors are you getting?

---

<div class="post-metadata">

### Author: ![jwu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jwu/32/3775_2.png) [@jwu](https://discourse.julialang.org/u/jwu)
#### Post date: [November 1, 2018, 7:35pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/3 "2018-11-01T19:35:43Z")

</div>

```julia
julia> Pkg.add("https://github.com/jingpengw/GoogleCloud.jl.git")'
WARNING: Base.Pkg is deprecated, run `using Pkg` instead
 in module Main
ERROR: https://github.com/jingpengw/GoogleCloud.jl.git is not a valid packagename
Stacktrace:
 [1] pkgerror(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/Types.jl:120
 [2] check_package_name(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:22
 [3] iterate at ./generator.jl:47 [inlined]
 [4] collect(::Base.Generator{Array{String,1},typeof(Pkg.API.check_package_name)}) at ./array.jl:619
 [5] #add_or_develop#11(::Base.Iterators.Pairs{Symbol,Symbol,Tuple{Symbol},NamedTuple{(:mode,),Tuple{Symbol}}}, ::Function, ::Array{String,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:28
 [6] #add_or_develop at ./none:0 [inlined]
 [7] #add_or_develop#10 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:27 [inlined]
 [8] #add_or_develop at ./none:0 [inlined]
 [9] #add#18 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:69 [inlined]
 [10] add(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:69
 [11] top-level scope at none:0

```

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [November 1, 2018, 7:40pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/4 "2018-11-01T19:40:15Z")

</div>

```julia
using Pkg
Pkg.add(PackageSpec(url="https://github.com/jingpengw/GoogleCloud.jl.git"))

```

(see the docs)

---

<div class="post-metadata">

### Author: ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)
#### Post date: [November 5, 2018, 5:10pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/5 "2018-11-05T17:10:56Z")

</div>

can you post an example using ssh instead of https?

I am using the following in Gitlab CI:

```julia
julia -e "using Pkg; Pkg.add(\"git@gitlab.com:MyPackages/MyPkg.jl.git\")"

```

but I keep getting this error:

> ERROR: [git@gitlab.com](mailto:git@gitlab.com):MyPackages/MyPkg.jl.git is not a valid packagename

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [November 5, 2018, 5:24pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/6 "2018-11-05T17:24:17Z")

</div>

```julia
using Pkg
Pkg.add(PackageSpec(url="git@gitlab.com:MyPackages/MyPkg.jl.git"))

```

(see the docs)

---

<div class="post-metadata">

### Author: ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)
#### Post date: [November 5, 2018, 5:36pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/7 "2018-11-05T17:36:52Z")

</div>

Ok. Just wanted to confirm. In the docs there is no example with the `git@...` format, maybe it could be added.

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [November 5, 2018, 6:57pm UTC](https://discourse.julialang.org/t/what-is-the-appropriate-way-to-clone-packages-in-dockerfile/17066/8 "2018-11-05T18:57:53Z")

</div>

That would be a nice addition
