Skip to content

Commit

Permalink
test: Add Dockefile.test-server to repro issue with learn-ocaml.opam
Browse files Browse the repository at this point in the history
  • Loading branch information
erikmd committed Oct 9, 2021
1 parent 875b72b commit 6d86ce6
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 2 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build-and-test.yml
Expand Up @@ -59,6 +59,7 @@ jobs:
matrix:
dockerfile:
- 'Dockerfile.test-client'
- 'Dockerfile.test-server'
steps:
- name: Check out the repo
uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.test-client
Expand Up @@ -4,7 +4,7 @@
FROM ocaml/opam:alpine-3.13-ocaml-4.12 as compilation
LABEL Description="learn-ocaml building" Vendor="OCamlPro"

WORKDIR learn-ocaml
WORKDIR /home/opam/learn-ocaml

# Note: don't copy learn-ocaml.opam.locked
COPY learn-ocaml-client.opam learn-ocaml.opam ./
Expand Down Expand Up @@ -62,4 +62,4 @@ WORKDIR /learnocaml

COPY --from=compilation /home/opam/install-prefix/bin/learn-ocaml-client /usr/bin

ENTRYPOINT ["dumb-init","learn-ocaml-client"]
ENTRYPOINT ["dumb-init","/usr/bin/learn-ocaml-client"]
70 changes: 70 additions & 0 deletions Dockerfile.test-server
@@ -0,0 +1,70 @@
# This Dockerfile is useful for testing purposes
# to ensure learn-ocaml can be built alone from learn-ocaml.opam

FROM ocaml/opam:alpine-3.13-ocaml-4.12 as compilation
LABEL Description="learn-ocaml building" Vendor="OCamlPro"

WORKDIR /home/opam/learn-ocaml

# Note: don't copy learn-ocaml.locked
COPY learn-ocaml.opam learn-ocaml-client.opam ./
RUN sudo chown -R opam:nogroup .

ENV OPAMYES true
RUN echo 'archive-mirrors: [ "https://opam.ocaml.org/cache" ]' >> ~/.opam/config \
&& opam repository set-url default http://opam.ocaml.org \
&& opam switch 4.12 \
&& echo 'pre-session-commands: [ "sudo" "apk" "add" depexts ]' >> ~/.opam/config \
&& opam pin add -n -y -k path learn-ocaml . \
&& opam install learn-ocaml --deps-only --locked

COPY static static
COPY translations translations
COPY src src
COPY scripts scripts
COPY Makefile Makefile
COPY demo-repository demo-repository
COPY dune-project dune-project
COPY dune dune
RUN sudo chown -R opam:nogroup .

ENV OPAMVERBOSE 1

RUN opam install learn-ocaml --destdir /home/opam/install-prefix \
&& ls -l /home/opam/install-prefix/bin/learn-ocaml


FROM alpine:3.13 as program

ARG BUILD_DATE
ARG VCS_BRANCH
ARG VCS_REF

LABEL org.label-schema.build-date="${BUILD_DATE}" \
org.label-schema.name="learn-ocaml" \
org.label-schema.description="learn-ocaml app manager" \
org.label-schema.url="https://ocaml-sf.org/" \
org.label-schema.vendor="The OCaml Software Foundation" \
org.label-schema.version="${VCS_BRANCH}" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vcs-url="https://github.com/ocaml-sf/learn-ocaml" \
org.label-schema.schema-version="1.0"

RUN apk update \
&& apk add ncurses-libs libev dumb-init git openssl \
&& addgroup learn-ocaml \
&& adduser learn-ocaml -DG learn-ocaml

VOLUME ["/repository"]
RUN mkdir -p /sync && chown learn-ocaml:learn-ocaml /sync
VOLUME ["/sync"]
EXPOSE 8080
EXPOSE 8443

USER learn-ocaml
WORKDIR /home/learn-ocaml

COPY --from=compilation /home/opam/install-prefix /usr

ENTRYPOINT ["dumb-init","/usr/bin/learn-ocaml","--sync-dir=/sync","--repo=/repository"]
CMD ["build","serve"]

0 comments on commit 6d86ce6

Please sign in to comment.