Skip to content

Instantly share code, notes, and snippets.

@superherointj
Created April 2, 2020 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save superherointj/d0d7fd6b4397e825eb66840af26bb18a to your computer and use it in GitHub Desktop.
Save superherointj/d0d7fd6b4397e825eb66840af26bb18a to your computer and use it in GitHub Desktop.
Esy-Alpine
FROM alpine as alpine-ocaml
RUN apk add --no-cache make gcc musl-dev libstdc++ ocaml opam yarn npm nodejs perl autoconf binutils alpine-sdk m4 build-base libtool automake git openssh
RUN mkdir /workdir
WORKDIR /workdir
# Build
FROM alpine-ocaml as esy-build
RUN git clone https://github.com/superherointj/esy-musl.git ./
#RUN make bootstrap
#### Eduardo's solution!
RUN adduser -D -u 1000 esy-user
USER esy-user
ENV OPAMYES=true
RUN opam init --disable-sandboxing
RUN opam pin cmdliner https://github.com/esy-ocaml/cmdliner.git
RUN export PATH=/bin/core_perl:$PATH; \
opam install dune reason lwt_ppx ppx_let ppx_deriving_yojson bos logs \
re angstrom opam-format ppx_inline_test ppx_sexp_conv opam-state ppx_expect cudf dose3
RUN mkdir ~/bootstrap
WORKDIR /home/esy-user/bootstrap
# https://github.com/esy/esy/pull/1000
RUN git clone --single-branch --branch stream-based-copy-file https://github.com/ulrikstrid/esy.git
WORKDIR /home/esy-user/bootstrap/esy
RUN eval $(opam env); \
dune build --profile=release; exit 0
WORKDIR /home/esy-user/bootstrap
RUN git clone https://github.com/andreypopp/esy-solve-cudf.git
RUN opam install mccs
WORKDIR /home/esy-user/bootstrap/esy-solve-cudf
RUN eval $(opam env); \
dune build --profile=release
RUN mkdir -p ../esy/_build/default/node_modules/esy-solve-cudf/
RUN cp _build/default/bin/esySolveCudfCommand.exe ../esy/_build/default/node_modules/esy-solve-cudf/esySolveCudfCommand.exe
RUN ln -s /home/esy-user/bootstrap/esy/_build/default/bin/esy.exe ~/.opam/default/bin/esy
WORKDIR /home/esy-user
# https://github.com/esy/esy/pull/1000
RUN git clone --single-branch --branch stream-based-copy-file https://github.com/ulrikstrid/esy.git
WORKDIR /home/esy-user/esy
# https://github.com/esy/esy/pull/1001
RUN rm -rf esy.lock
# for some reason esy can't find the current path even if I use export on the same step
USER root
RUN ln -s /usr/bin/core_perl/* /bin
USER esy-user
RUN eval $(opam env); \
export PATH=/bin/core_perl:$PATH; \
esy;
# USER root
# RUN pacman -Sy --noconfirm nodejs npm yarn
# USER esy-user
RUN yarn
RUN eval $(opam env); \
esy release:platform-release; \
node scripts/create-release-package-json.js > _platformrelease/package.json; \
cp ~/bootstrap/esy-solve-cudf/_build/default/bin/esySolveCudfCommand.exe ~/esy/node_modules/esy-solve-cudf/esySolveCudfCommand.exe; \
ln -s /home/esy-user/esy/_platformrelease/_build/default/bin/esy.exe /home/esy-user/.yarn/bin/esy; \
echo 'export PATH="$PATH:$(yarn global bin)"' >> ~/.bashrc
# esy should be running now
#### Testing
CMD bash -l
#### TEST IT!!!!!
# RUN ./_build/default/bin/esy.exe --version
### Copiar exclusivamente o binário do Esy
# FROM alpine as esy-runtime
# RUN mkdir /workdir
# WORKDIR /wordir
# COPY --from=esy-build /workdir/_build/default/bin/esy.exe /workdir
# RUN /workdir/esy.exe
### Workaround for:
## Step 7/7 : RUN make bootstrap
## make: esy: Command not found
## Makefile:59: *** "esy command is not avaialble, run 'npm install -g esy@0..x'". Stop.
## https://gist.github.com/EduardoRFS/4d30ef02edefc7e6c97892300bef05a2
Sending build context to Docker daemon 738.2MB
Step 1/36 : FROM alpine as alpine-ocaml
---> a187dde48cd2
Step 2/36 : RUN apk add --no-cache make gcc musl-dev libstdc++ ocaml opam yarn npm nodejs perl autoconf binutils alpine-sdk m4 build-base libtool automake git openssh
---> Running in 2ab672bb76b1
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/72) Installing fakeroot (1.24-r0)
(2/72) Installing sudo (1.8.31-r0)
(3/72) Installing libcap (2.27-r0)
(4/72) Installing pax-utils (1.2.4-r0)
(5/72) Installing openssl (1.1.1d-r3)
(6/72) Installing libattr (2.4.48-r0)
(7/72) Installing attr (2.4.48-r0)
(8/72) Installing libacl (2.2.53-r0)
(9/72) Installing tar (1.32-r1)
(10/72) Installing pkgconf (1.6.3-r0)
(11/72) Installing patch (2.7.6-r6)
(12/72) Installing libgcc (9.2.0-r4)
(13/72) Installing libstdc++ (9.2.0-r4)
(14/72) Installing lzip (1.21-r0)
(15/72) Installing ca-certificates (20191127-r1)
(16/72) Installing nghttp2-libs (1.40.0-r0)
(17/72) Installing libcurl (7.67.0-r0)
(18/72) Installing curl (7.67.0-r0)
(19/72) Installing abuild (3.5.0-r0)
Executing abuild-3.5.0-r0.pre-install
(20/72) Installing binutils (2.33.1-r0)
(21/72) Installing libmagic (5.37-r1)
(22/72) Installing file (5.37-r1)
(23/72) Installing gmp (6.1.2-r1)
(24/72) Installing isl (0.18-r0)
(25/72) Installing libgomp (9.2.0-r4)
(26/72) Installing libatomic (9.2.0-r4)
(27/72) Installing mpfr4 (4.0.2-r1)
(28/72) Installing mpc1 (1.1.0-r1)
(29/72) Installing gcc (9.2.0-r4)
(30/72) Installing musl-dev (1.1.24-r2)
(31/72) Installing libc-dev (0.7.2-r0)
(32/72) Installing g++ (9.2.0-r4)
(33/72) Installing make (4.2.1-r2)
(34/72) Installing fortify-headers (1.1-r0)
(35/72) Installing build-base (0.5-r1)
(36/72) Installing expat (2.2.9-r1)
(37/72) Installing pcre2 (10.34-r1)
(38/72) Installing git (2.24.1-r0)
(39/72) Installing alpine-sdk (1.0-r0)
(40/72) Installing m4 (1.4.18-r1)
(41/72) Installing libbz2 (1.0.8-r1)
(42/72) Installing perl (5.30.1-r0)
(43/72) Installing perl-error (0.17028-r0)
(44/72) Installing perl-git (2.24.1-r0)
(45/72) Installing git-perl (2.24.1-r0)
(46/72) Installing autoconf (2.69-r2)
(47/72) Installing automake (1.16.1-r0)
(48/72) Installing ncurses-terminfo-base (6.1_p20200118-r2)
(49/72) Installing ncurses-libs (6.1_p20200118-r2)
(50/72) Installing readline (8.0.1-r0)
(51/72) Installing bash (5.0.11-r1)
Executing bash-5.0.11-r1.post-install
(52/72) Installing libltdl (2.4.6-r7)
(53/72) Installing libtool (2.4.6-r7)
(54/72) Installing c-ares (1.15.0-r0)
(55/72) Installing libuv (1.34.0-r0)
(56/72) Installing nodejs (12.15.0-r1)
(57/72) Installing npm (12.15.0-r1)
(58/72) Installing ocaml-runtime (4.08.1-r1)
(59/72) Installing ocaml (4.08.1-r1)
(60/72) Installing unzip (6.0-r6)
(61/72) Installing popt (1.16-r7)
(62/72) Installing rsync (3.1.3-r2)
(63/72) Installing bubblewrap (0.4.0-r0)
(64/72) Installing opam (2.0.5-r1)
(65/72) Installing openssh-keygen (8.1_p1-r0)
(66/72) Installing libedit (20191211.3.1-r0)
(67/72) Installing openssh-client (8.1_p1-r0)
(68/72) Installing openssh-sftp-server (8.1_p1-r0)
(69/72) Installing openssh-server-common (8.1_p1-r0)
(70/72) Installing openssh-server (8.1_p1-r0)
(71/72) Installing openssh (8.1_p1-r0)
(72/72) Installing yarn (1.19.2-r0)
Executing busybox-1.31.1-r9.trigger
Executing ca-certificates-20191127-r1.trigger
OK: 415 MiB in 86 packages
Removing intermediate container 2ab672bb76b1
---> 28bb29b65647
Step 3/36 : RUN mkdir /workdir
---> Running in faa06f3c2666
Removing intermediate container faa06f3c2666
---> ed58da148d58
Step 4/36 : WORKDIR /workdir
---> Running in 5517d1df1d3f
Removing intermediate container 5517d1df1d3f
---> 0356acffe8c7
Step 5/36 : FROM alpine-ocaml as esy-build
---> 0356acffe8c7
Step 6/36 : RUN git clone https://github.com/superherointj/esy-musl.git ./
---> Running in 2d1366d1008d
Cloning into '.'...
Removing intermediate container 2d1366d1008d
---> 6052fb344635
Step 7/36 : RUN adduser -D -u 1000 esy-user
---> Running in aa3fd21b2834
Removing intermediate container aa3fd21b2834
---> 952bd2636bd4
Step 8/36 : USER esy-user
---> Running in 6524e19d5773
Removing intermediate container 6524e19d5773
---> 6d1f92dc25d8
Step 9/36 : ENV OPAMYES=true
---> Running in 13cc52fa7f48
Removing intermediate container 13cc52fa7f48
---> 35a0b4def5ac
Step 10/36 : RUN opam init --disable-sandboxing
---> Running in 39b1157e3b74
[NOTE] Will configure from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.
<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
<><> Required setup - please read <><><><><><><><><><><><><><><><><><><><><><><>
In normal operation, opam only alters files within ~/.opam.
However, to best integrate with your system, some environment variables
should be set. If you allow it to, this initialisation step will update
your sh configuration by adding the following line to ~/.profile:
test -r /home/esy-user/.opam/opam-init/init.sh && . /home/esy-user/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
Otherwise, every time you want to access your opam installation, you will
need to run:
eval $(opam env)
You can always re-run this setup with 'opam init' later.
Do you want opam to modify ~/.profile? [N/y/f]
(default is 'no', use 'f' to choose a different file) A hook can be added to opam's init scripts to ensure that the shell remains in sync with the opam environment when they are loaded. Set that up? [y/N] y
<><> Creating initial switch (ocaml-system>=4.02.3) <><><><><><><><><><><><><><>
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed base-bigarray.base
-> installed base-threads.base
-> installed base-unix.base
-> installed ocaml-system.4.08.1
-> installed ocaml-config.1
-> installed ocaml.4.08.1
Done.
# Run eval $(opam env) to update the current shell environment
Removing intermediate container 39b1157e3b74
---> 649199ed4f63
Step 11/36 : RUN opam pin cmdliner https://github.com/esy-ocaml/cmdliner.git
---> Running in 4d2adc44822e
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4: git]
[cmdliner.1.0.4] synchronised from git+https://github.com/esy-ocaml/cmdliner.git
[WARNING] Failed checks on cmdliner package definition from source at git+https://github.com/esy-ocaml/cmdliner.git:
error 57: Synopsis and description must not be both empty
cmdliner is now pinned to git+https://github.com/esy-ocaml/cmdliner.git (version 1.0.4)
The following actions will be performed:
- install cmdliner 1.0.4*
[cmdliner.1.0.4] synchronised from git+https://github.com/esy-ocaml/cmdliner.git
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed cmdliner.1.0.4
Done.
# Run eval $(opam env) to update the current shell environment
Removing intermediate container 4d2adc44822e
---> 488645c07e18
Step 12/36 : RUN export PATH=/bin/core_perl:$PATH; opam install dune reason lwt_ppx ppx_let ppx_deriving_yojson bos logs re angstrom opam-format ppx_inline_test ppx_sexp_conv opam-state ppx_expect cudf dose3
---> Running in 9a4b00c01e42
The following actions will be performed:
- install seq base [required by re]
- install conf-m4 1 [required by ocamlfind]
- install ocamlbuild 0.14.0 [required by dose3, bos, cudf, logs]
- install conf-perl 1 [required by cudf, dose3]
- install opam-file-format 2.0.0 [required by opam-format]
- install dune 2.4.0
- install ocamlfind 1.8.1 [required by logs, bos, cudf, reason]
- install stdlib-shims 0.1.0 [required by fmt]
- install sexplib0 v0.13.0 [required by ppx_sexp_conv]
- install result 1.5 [required by ppx_deriving_yojson, angstrom, reason]
- install re 1.9.0
- install ppx_tools 6.0+4.08.0 [required by ppx_deriving_yojson]
- install ppx_derivers 1.2.1 [required by ocaml-migrate-parsetree, ppx_deriving]
- install ocaml-compiler-libs v0.12.1 [required by ppxlib]
- install mmap 1.1.0 [required by lwt]
- install menhirSdk 20200211 [required by menhir]
- install menhirLib 20200211 [required by menhir]
- install fix 20200131 [required by reason]
- install easy-format 1.3.2 [required by yojson]
- install dune-private-libs 2.4.0 [required by dune-configurator]
- install cppo 1.6.6 [required by dose3, ppx_deriving_yojson]
- install bigarray-compat 1.0.0 [required by bigstringaf]
- install topkg 1.0.1 [required by bos, logs]
- install ocamlgraph 1.8.8 [required by dose3]
- install base-bytes base [required by astring, extlib]
- install ocaml-migrate-parsetree 1.6.0 [required by lwt_ppx, reason]
- install menhir 20200211 [required by reason]
- install biniou 1.2.1 [required by yojson]
- install dune-configurator 2.4.0 [required by lwt, base]
- install merlin-extend 0.5 [required by reason]
- install bigstringaf 0.6.1 [required by angstrom]
- install rresult 0.6.0 [required by bos]
- install fmt 0.8.8 [required by bos, logs]
- install opam-core 2.0.6 [required by opam-format]
- install ocplib-endian 1.0 [required by lwt]
- install extlib 1.7.6 [required by cudf, dose3]
- install astring 0.8.3 [required by bos]
- install ppxfind 1.4 [required by ppx_deriving_yojson]
- install ppx_tools_versioned 5.3.0 [required by lwt_ppx]
- install yojson 1.7.0 [required by ppx_deriving_yojson]
- install base v0.13.1 [required by ppx_let, ppx_expect, ppx_inline_test, ppx_sexp_conv]
- install reason 3.6.0
- install angstrom 0.13.0
- install opam-format 2.0.6
- install lwt 5.2.0 [required by logs, lwt_ppx]
- install cudf 0.9-1
- install fpath 0.7.2 [required by bos]
- install ppx_deriving 4.4.1 [required by ppx_deriving_yojson]
- install variantslib v0.13.0 [required by ppx_variants_conv]
- install stdio v0.13.0 [required by ppx_expect]
- install fieldslib v0.13.0 [required by ppx_fields_conv]
- install opam-repository 2.0.6 [required by opam-state]
- install lwt_ppx 2.0.1
- install logs 0.7.0
- install dose3 5.0.1
- install ppx_deriving_yojson 3.5.2
- install ppxlib 0.12.0 [required by ppx_let, ppx_expect, ppx_inline_test, ppx_sexp_conv]
- install opam-state 2.0.6
- install bos 0.2.0
- install ppx_variants_conv v0.13.0 [required by ppx_expect]
- install ppx_sexp_conv v0.13.0
- install ppx_let v0.13.0
- install ppx_inline_test v0.13.1
- install ppx_here v0.13.0 [required by ppx_expect]
- install ppx_fields_conv v0.13.0 [required by ppx_expect]
- install ppx_compare v0.13.0 [required by ppx_expect]
- install ppx_cold v0.13.0 [required by ppx_assert]
- install ppx_custom_printf v0.13.0 [required by ppx_expect]
- install ppx_assert v0.13.0 [required by ppx_expect]
- install ppx_expect v0.13.0
===== 70 to install =====
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[astring.0.8.3] downloaded from cache at https://opam.ocaml.org/cache
[angstrom.0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[base.v0.13.1] downloaded from cache at https://opam.ocaml.org/cache
[bigarray-compat.1.0.0] downloaded from cache at https://opam.ocaml.org/cache
[bigstringaf.0.6.1] downloaded from cache at https://opam.ocaml.org/cache
[biniou.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[bos.0.2.0] downloaded from cache at https://opam.ocaml.org/cache
[cppo.1.6.6] downloaded from cache at https://opam.ocaml.org/cache
[cudf.0.9-1] downloaded from cache at https://opam.ocaml.org/cache
[dose3.5.0.1] downloaded from cache at https://opam.ocaml.org/cache
[dune.2.4.0] downloaded from cache at https://opam.ocaml.org/cache
[easy-format.1.3.2] downloaded from cache at https://opam.ocaml.org/cache
[dune-private-libs.2.4.0] downloaded from cache at https://opam.ocaml.org/cache
[extlib.1.7.6] downloaded from cache at https://opam.ocaml.org/cache
[fieldslib.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[fmt.0.8.8] downloaded from cache at https://opam.ocaml.org/cache
[fix.20200131] downloaded from cache at https://opam.ocaml.org/cache
[dune-configurator.2.4.0] downloaded from cache at https://opam.ocaml.org/cache
[fpath.0.7.2] downloaded from cache at https://opam.ocaml.org/cache
[logs.0.7.0] downloaded from cache at https://opam.ocaml.org/cache
[lwt.5.2.0] downloaded from cache at https://opam.ocaml.org/cache
[lwt_ppx.2.0.1] downloaded from cache at https://opam.ocaml.org/cache
[menhir.20200211] downloaded from cache at https://opam.ocaml.org/cache
[merlin-extend.0.5] downloaded from cache at https://opam.ocaml.org/cache
[mmap.1.1.0] downloaded from cache at https://opam.ocaml.org/cache
[ocaml-compiler-libs.v0.12.1] downloaded from cache at https://opam.ocaml.org/cache
[ocaml-migrate-parsetree.1.6.0] downloaded from cache at https://opam.ocaml.org/cache
[menhirSdk.20200211] downloaded from cache at https://opam.ocaml.org/cache
[ocamlbuild.0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ocamlfind.1.8.1] downloaded from cache at https://opam.ocaml.org/cache
[ocplib-endian.1.0] downloaded from cache at https://opam.ocaml.org/cache
[ocamlgraph.1.8.8] downloaded from cache at https://opam.ocaml.org/cache
[opam-file-format.2.0.0] downloaded from cache at https://opam.ocaml.org/cache
[menhirLib.20200211] downloaded from cache at https://opam.ocaml.org/cache
[opam-core.2.0.6] downloaded from cache at https://opam.ocaml.org/cache
[opam-state.2.0.6] found in cache
[ppx_assert.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_cold.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[opam-format.2.0.6] downloaded from cache at https://opam.ocaml.org/cache
[ppx_compare.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_custom_printf.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_derivers.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_deriving.4.4.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_deriving_yojson.3.5.2] downloaded from cache at https://opam.ocaml.org/cache
[opam-repository.2.0.6] downloaded from cache at https://opam.ocaml.org/cache
[ppx_fields_conv.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_expect.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_here.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_let.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_inline_test.v0.13.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_sexp_conv.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_tools.6.0+4.08.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_tools_versioned.5.3.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_variants_conv.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[ppxfind.1.4] downloaded from cache at https://opam.ocaml.org/cache
[ppxlib.0.12.0] downloaded from cache at https://opam.ocaml.org/cache
[re.1.9.0] downloaded from cache at https://opam.ocaml.org/cache
[result.1.5] downloaded from cache at https://opam.ocaml.org/cache
[rresult.0.6.0] downloaded from cache at https://opam.ocaml.org/cache
[reason.3.6.0] downloaded from cache at https://opam.ocaml.org/cache
[sexplib0.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[stdio.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[stdlib-shims.0.1.0] downloaded from cache at https://opam.ocaml.org/cache
[variantslib.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[topkg.1.0.1] downloaded from cache at https://opam.ocaml.org/cache
[yojson.1.7.0] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed seq.base
-> installed conf-m4.1
-> installed conf-perl.1
-> installed opam-file-format.2.0.0
[ERROR] The compilation of ocamlfind failed at "/usr/bin/make all".
-> installed ocamlbuild.0.14.0
-> installed dune.2.4.0
[ERROR] The compilation of bigarray-compat failed at "/home/esy-user/.opam/default/bin/dune build -p bigarray-compat -j 15".
-> installed easy-format.1.3.2
-> installed cppo.1.6.6
-> installed fix.20200131
-> installed menhirLib.20200211
-> installed menhirSdk.20200211
-> installed mmap.1.1.0
[ERROR] The compilation of ocaml-compiler-libs failed at "/home/esy-user/.opam/default/bin/dune build -p ocaml-compiler-libs -j 15".
-> installed ppx_derivers.1.2.1
-> installed dune-private-libs.2.4.0
[ERROR] The compilation of ppx_tools failed at "/home/esy-user/.opam/default/bin/dune build -p ppx_tools -j 15".
-> installed re.1.9.0
-> installed result.1.5
-> installed sexplib0.v0.13.0
[ERROR] The compilation of stdlib-shims failed at "/home/esy-user/.opam/default/bin/dune build -p stdlib-shims -j 15".
-> installed biniou.1.2.1
[ERROR] The compilation of merlin-extend failed at "/home/esy-user/.opam/default/bin/dune build -p merlin-extend -j 15".
-> installed menhir.20200211
-> installed dune-configurator.2.4.0
[ERROR] The compilation of ocaml-migrate-parsetree failed at "/home/esy-user/.opam/default/bin/dune build -p ocaml-migrate-parsetree -j 15".
-> installed yojson.1.7.0
[ERROR] The compilation of base failed at "/home/esy-user/.opam/default/bin/dune build -p base -j 15".

#=== ERROR while compiling stdlib-shims.0.1.0 =================================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/stdlib-shims.0.1.0
# command ~/.opam/default/bin/dune build -p stdlib-shims -j 15
# exit-code 1
# env-file ~/.opam/log/stdlib-shims-1-b8942e.env
# output-file ~/.opam/log/stdlib-shims-1-b8942e.out
### output ###
# ocaml (internal) (exit 2)
# (cd src && /usr/bin/ocaml -I +compiler-libs /home/esy-user/.opam/default/.opam-switch/build/stdlib-shims.0.1.0/_build/.dune/default/src/dune.ml)
# File "/home/esy-user/.opam/default/.opam-switch/build/stdlib-shims.0.1.0/_build/.dune/default/src/dune.ml", line 27, characters 14-37:
# 27 | Hashtbl.add Toploop.directive_table "require"
# ^^^^^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Toploop
#=== ERROR while compiling ppx_tools.6.0+4.08.0 ===============================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/ppx_tools.6.0+4.08.0
# command ~/.opam/default/bin/dune build -p ppx_tools -j 15
# exit-code 1
# env-file ~/.opam/log/ppx_tools-1-756954.env
# output-file ~/.opam/log/ppx_tools-1-756954.out
### output ###
# [...]
# File "dune", line 27, characters 33-55:
# 27 | (libraries compiler-libs.common compiler-libs.bytecomp ast_lifter))
# ^^^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.bytecomp" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try: dune external-lib-deps --missing -p ppx_tools -j 15 @install
# File "dune", line 37, characters 12-32:
# 37 | (libraries compiler-libs.common))
# ^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.common" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try: dune external-lib-deps --missing -p ppx_tools -j 15 @install

#=== ERROR while compiling ocamlfind.1.8.1 ====================================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/ocamlfind.1.8.1
# command /usr/bin/make all
# exit-code 2
# env-file ~/.opam/log/ocamlfind-1-585bf6.env
# output-file ~/.opam/log/ocamlfind-1-585bf6.out
### output ###
# [...]
# Use Bytes.create instead.
# ocamlc -I +compiler-libs -o ocamlfind -g findlib.cma unix.cma \
# ocaml_args.cmo frontend.cmo
# ocamlc -I +compiler-libs -opaque -c topfind.mli
# ocamlc -I +compiler-libs -opaque -g -c topfind.ml
# File "topfind.ml", line 55, characters 12-41:
# 55 | let ph = !Toploop.parse_toplevel_phrase l in
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Toploop
# make[1]: *** [Makefile:165: topfind.cmo] Error 2
# make[1]: Leaving directory '/home/esy-user/.opam/default/.opam-switch/build/ocamlfind.1.8.1/src/findlib'
# make: *** [Makefile:13: all] Error 2
#=== ERROR while compiling ocaml-migrate-parsetree.1.6.0 ======================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/ocaml-migrate-parsetree.1.6.0
# command ~/.opam/default/bin/dune build -p ocaml-migrate-parsetree -j 15
# exit-code 1
# env-file ~/.opam/log/ocaml-migrate-parsetree-1-f26b26.env
# output-file ~/.opam/log/ocaml-migrate-parsetree-1-f26b26.out
### output ###
# 6 | (libraries compiler-libs.common result ppx_derivers)
# [...]
# Error: Library "compiler-libs.common" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try:
# dune external-lib-deps --missing -p ocaml-migrate-parsetree -j 15 @install
# File "tools/dune", line 3, characters 33-55:
# 3 | (libraries compiler-libs.common compiler-libs.bytecomp))
# ^^^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.bytecomp" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try:
# dune external-lib-deps --missing -p ocaml-migrate-parsetree -j 15 @install

#=== ERROR while compiling ocaml-compiler-libs.v0.12.1 ========================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/ocaml-compiler-libs.v0.12.1
# command ~/.opam/default/bin/dune build -p ocaml-compiler-libs -j 15
# exit-code 1
# env-file ~/.opam/log/ocaml-compiler-libs-1-f1b05e.env
# output-file ~/.opam/log/ocaml-compiler-libs-1-f1b05e.out
### output ###
# 5 | (libraries compiler-libs.bytecomp)
# [...]
# Error: Library "compiler-libs.bytecomp" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try:
# dune external-lib-deps --missing -p ocaml-compiler-libs -j 15 @install
# File "src/read_cma/dune", line 4, characters 33-55:
# 4 | (libraries compiler-libs.common compiler-libs.bytecomp)
# ^^^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.bytecomp" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try:
# dune external-lib-deps --missing -p ocaml-compiler-libs -j 15 @install
#=== ERROR while compiling merlin-extend.0.5 ==================================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/merlin-extend.0.5
# command ~/.opam/default/bin/dune build -p merlin-extend -j 15
# exit-code 1
# env-file ~/.opam/log/merlin-extend-1-fa35e0.env
# output-file ~/.opam/log/merlin-extend-1-fa35e0.out
### output ###
# ocamlc .merlin_extend.objs/byte/extend_protocol.{cmi,cmo,cmt} (exit 2)
# (cd _build/default && /usr/bin/ocamlc.opt -w -40 -w -50 -g -bin-annot -I .merlin_extend.objs/byte -I /usr/lib/ocaml/compiler-libs -no-alias-deps -o .merlin_extend.objs/byte/extend_protocol.cmo -c -impl extend_protocol.ml)
# File "extend_protocol.ml", line 23, characters 19-38:
# 23 | Structure of Parsetree.structure
# ^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Parsetree

#=== ERROR while compiling bigarray-compat.1.0.0 ==============================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/bigarray-compat.1.0.0
# command ~/.opam/default/bin/dune build -p bigarray-compat -j 15
# exit-code 1
# env-file ~/.opam/log/bigarray-compat-1-e86963.env
# output-file ~/.opam/log/bigarray-compat-1-e86963.out
### output ###
# ocaml (internal) (exit 2)
# (cd src && /usr/bin/ocaml -I +compiler-libs /home/esy-user/.opam/default/.opam-switch/build/bigarray-compat.1.0.0/_build/.dune/default/src/dune.ml)
# File "/home/esy-user/.opam/default/.opam-switch/build/bigarray-compat.1.0.0/_build/.dune/default/src/dune.ml", line 27, characters 14-37:
# 27 | Hashtbl.add Toploop.directive_table "require"
# ^^^^^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Toploop

#=== ERROR while compiling base.v0.13.1 =======================================#
# context 2.0.5 | linux/x86_64 | ocaml-system.4.08.1 | https://opam.ocaml.org#0aa6f7d4
# path ~/.opam/default/.opam-switch/build/base.v0.13.1
# command ~/.opam/default/bin/dune build -p base -j 15
# exit-code 1
# env-file ~/.opam/log/base-1-886cd2.env
# output-file ~/.opam/log/base-1-886cd2.out
### output ###
# [...]
# File "compiler-stdlib/gen/dune", line 2, characters 33-55:
# 2 | (libraries compiler-libs.common compiler-libs.bytecomp)
# ^^^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.bytecomp" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try: dune external-lib-deps --missing -p base -j 15 @install
# File "shadow-stdlib/gen/dune", line 1, characters 40-60:
# 1 | (executables (names gen) (libraries str compiler-libs.common caml)
# ^^^^^^^^^^^^^^^^^^^^
# Error: Library "compiler-libs.common" in /usr/lib/ocaml/compiler-libs is
# hidden (unsatisfied 'exist_if').
# Hint: try: dune external-lib-deps --missing -p base -j 15 @install

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build base v0.13.1
| - build bigarray-compat 1.0.0
| - build merlin-extend 0.5
| - build ocaml-compiler-libs v0.12.1
| - build ocaml-migrate-parsetree 1.6.0
| - build ocamlfind 1.8.1
| - build ppx_tools 6.0+4.08.0
| - build stdlib-shims 0.1.0
+-
+- The following changes have been performed (the rest was aborted)
| - install biniou 1.2.1
| - install conf-m4 1
| - install conf-perl 1
| - install cppo 1.6.6
| - install dune 2.4.0
| - install dune-configurator 2.4.0
| - install dune-private-libs 2.4.0
| - install easy-format 1.3.2
| - install fix 20200131
| - install menhir 20200211
| - install menhirLib 20200211
| - install menhirSdk 20200211
| - install mmap 1.1.0
| - install ocamlbuild 0.14.0
| - install opam-file-format 2.0.0
| - install ppx_derivers 1.2.1
| - install re 1.9.0
| - install result 1.5
| - install seq base
| - install sexplib0 v0.13.0
| - install yojson 1.7.0
+-
# Run eval $(opam env) to update the current shell environment

The former state can be restored with:
opam switch import "/home/esy-user/.opam/default/.opam-switch/backup/state-20200402151856.export"

# Como estou executando o Dockerfile e saída stderr.
2700x-PC intj ~/git/esy-musl (master) $ docker build --no-cache -t esyalpine . > esyalpine-error.log
The command '/bin/sh -c export PATH=/bin/core_perl:$PATH; opam install dune reason lwt_ppx ppx_let ppx_deriving_yojson bos logs re angstrom opam-format ppx_inline_test ppx_sexp_conv opam-state ppx_expect cudf dose3' returned a non-zero code: 31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment