gridap / GridapMakie.jl

Makie plotting recipes for Gridap
MIT License
34 stars 8 forks source link

Issues installing GridapMakie.jl in a docker container #52

Closed isakhammer closed 2 years ago

isakhammer commented 2 years ago

I am trying to install GridapMakie in a docker container and I get this error message.

Step 11/11 : RUN julia -e 'using Pkg; Pkg.add(["Gridap", "GridapMakie", "GLMakie", "FileIO"])'
 ---> Running in a0fb7d2ef3b5
    Cloning default registries into `~/.julia`
    Cloning registry from "https://github.com/JuliaRegistries/General.git"
      Added registry `General` to `~/.julia/registries/General`
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package GridapMakie [41f30b06]:
 GridapMakie [41f30b06] log:
 ├─possible versions are: 0.1.0-0.1.1 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.1.1
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left
Stacktrace:
 [1] propagate_constraints!(::Pkg.Resolve.Graph, ::Set{Int64}; log_events::Bool) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1010
 [2] propagate_constraints! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:951 [inlined] (repeats 2 times)
 [3] simplify_graph!(::Pkg.Resolve.Graph, ::Set{Int64}; clean_graph::Bool) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1465
 [4] simplify_graph! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1465 [inlined] (repeats 2 times)
 [5] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:341
 [6] targeted_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Pkg.Types.PreserveLevel) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1057
 [7] tiered_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1043
 [8] _resolve at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1063 [inlined]
 [9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1078
 [10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:159
 [11] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:112
 [12] #add#27 at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [13] add at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [14] #add#24 at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107 [inlined]
 [15] add(::Array{String,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107
 [16] top-level scope at none:1
The command '/bin/bash -c julia -e 'using Pkg; Pkg.add(["Gridap", "GridapMakie", "GLMakie", "FileIO"])'' returned a non-zero code: 1

using this minimal Dockerfile

#Dockerfile
FROM ubuntu:20.04
SHELL ["/bin/bash", "-c"]

ENV TZ=Europe/Oslo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get install -yq apt-utils dialog
RUN apt-get install -yq build-essential software-properties-common
RUN apt-get update

# Julia
RUN apt-get install -yq julia
RUN julia -e 'using Pkg; Pkg.add(["Gridap", "GridapMakie", "GLMakie", "FileIO"])'

Not sure why this is the case since I can easily do the installation on my host operating system.

Any idea why this should be the case?

ericneiva commented 2 years ago

Hi @isakhammer, I see in the error log that the julia version in the container is 1.4.1. GridapMakie requires 1.6. Maybe you can try downloading and installing >1.6 julia in the container.

isakhammer commented 2 years ago

Thanks!! It now worked :) For those interested, here is the Dockerfile with updated julia version.

#Dockerfile
FROM ubuntu:20.04
SHELL ["/bin/bash", "-c"]

ENV TZ=Europe/Oslo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Essentials
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get install -yq apt-utils dialog
RUN apt-get install -yq build-essential software-properties-common
RUN apt-get -y install curl

RUN apt-get update

# Julia
RUN apt-get install -yq julia
RUN julia -e 'using Pkg; Pkg.add(["UpdateJulia"])'
RUN julia -e 'using UpdateJulia; update_julia() '
RUN julia -e 'using Pkg; Pkg.add(["Gridap", "GridapMakie", "GLMakie", "FileIO"])'