Yeah, that could be messy. It really seems like these are some things
Stack needs to support better. It feels like the machinery is 99% of the
way there, and with a little polish around the corner cases, this could be
a really flexible workflow.
On Tuesday, November 1, 2016 at 3:48:56 AM UTC-7, Casper Clemence wrote:
>
> Thank you both for your replies. Sorry for being slow on my own thread,
> this project has taken a back seat for a while.
>
> The approach I was thinking of taking to solve this problem was to create
> a new user inside the container when setting up the container and run as
> this user
> when running the ghcjs setup then to ask docker to run with this user
> using he docker parameters in the stack file. I'm guessing however it might
> not be as
> simple as this as the file ownership might not work out without some work.
>
> Casper
>
>
> On Tuesday, September 20, 2016 at 10:30:37 PM UTC+1, Casper Clemence wrote:
>>
>> I have created a docker image with based on fpco/stack-build with GHCJS
>> installed and known to stack.
>>
>> I have a project which I am able to build with ghcjs by copying the
>> project into the docker container and running stack build.
>>
>> However, if I try to build the project locally (with the appropriate
>> docker section added to the stack.yaml) it complains that it can't find the
>> ghcjs compiler.
>> It is as if it is looking for the compiler locally instead of in the
>> container.
>> Is the intended behaviour or what am I doing wrong?
>>
>> *Further details:*
>>
>> The Dockerfile I used to build my image was as follows:
>>
>> FROM fpco/stack-build:lts-7.0
>> MAINTAINER Casper Clemence
>>
>>
>> # install ghcj
>> COPY "ghcjs/ghc-8.0-2016-09-14-lts-7.0-9007000.tar.gz" "/root/"
>> ADD ghcjs-build /root/ghcjs-build
>> RUN cd /root/ghcjs-build && stack setup
>> RUN rm -rf /root/ghcjs-build
>>
>>
>> # install Google Closure compiler
>> RUN sudo apt-get update
>> RUN sudo apt-get install closure-compiler -y
>>
>> The tar file is downloaded from
>> http://tolysz.org/ghcjs/ghc-8.0-2016-09-14-lts-7.0-9007000.tar.gz (my
>> starting
>> point has been https://github.com/tolysz/spock-ghcjs-sample).
>>
>> The directory ghcjs-build contains nothing but a stack.yaml file, the
>> contents of which are:
>>
>> resolver: lts-7.0
>> compiler: ghcjs-0.2.0.9007000_ghc-8.0.1
>> compiler-check: match-exact
>>
>>
>> setup-info:
>> ghcjs:
>> source:
>> ghcjs-0.2.0.9007000_ghc-8.0.1:
>> url: "/root/ghc-8.0-2016-09-14-lts-7.0-9007000.tar.gz"
>>
>>
>>
>> The stack.yaml for the project itself looks like:
>>
>> resolver: lts-7.0
>> compiler: ghcjs-0.2.0.9007000_ghc-8.0.1
>> compiler-check: match-exact
>>
>>
>> allow-newer: true
>>
>>
>> docker:
>> enable: true
>> repo: "maninalift/stack-ghcjs-build"
>> auto-pull: true
>>
>> packages:
>> - '../project-api/'
>> - '.'
>> - location:
>> git: https://github.com/agrafix/Spock
>> commit: 77333a2de5dea0dc8eba9432ab16864e93e5d70e
>> extra-dep: true
>> subdirs:
>> - Spock-api
>> - Spock-api-ghcjs
>> - reroute
>>
>>
>> extra-deps:
>> - ghcjs-dom-0.3.1.0
>> - ghcjs-dom-jsffi-0.3.1.0
>> - rawstring-qm-0.2.2.2
>>
>> By copying the project into a docker container created from the image
>> maninalift/stack-ghcjs-build and deleting the docker section of the
>> stack.yaml file, I can build the project.
>>
>> If however I try to build the project locally I get the following error:
>>
>> No compiler found, expected exact version ghcjs-0.2.0.9007000_ghc-8.0.1 (
>> x86_64) (based on resolver setting in /home/caz/repos/pets/xweb/site/
>> project-frontend/stack.yaml).
>> Try running "stack setup" to install the correct GHC into /home/caz/.
>> stack/programs/x86_64-linux-dk3a4ba5cbb06b149b5ecd98e80c865100/
>>
>>
>> Am I just misunderstanding the design of stack when I expect it to detect
>> ghcjs inside the docker container? I'd really like users of the repository
>> to be able to download the docker image and start building the project
>> without building ghcjs.
>>
>> Thank you all for your attention.
>>
>
--
You received this message because you are subscribed to the Google Groups
"haskell-stack" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to haskell-stack+unsubscr...@googlegroups.com.
To post to this group, send email to haskell-stack@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/haskell-stack/25c6a4a1-e075-4b46-b2bd-af5a110e816e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.