# purescript-docker
-Purescript build for docker :sail:
+
+[![Docker Stars](https://img.shields.io/docker/stars/gyeh/purescript.svg?maxAge=2592000)](https://hub.docker.com/r/gyeh/purescript/)
+[![Docker Pulls](https://img.shields.io/docker/pulls/gyeh/purescript.svg?maxAge=2592000)](https://hub.docker.com/r/gyeh/purescript/)
+
+Purescript build for docker
![Purescript](https://raw.githubusercontent.com/Risto-Stevcev/purescript-docker/master/logo.png)
-# usage
+# Build Locally
+
+You can build the image locally by cloning the repo and running `docker build .` in the project root.
+
+# Usage
Note: You may need to run docker comands as a superuser (sudo) depending on how it's configured on your system.
Pull the version you want to use:
```
-$ docker pull gyeh/purescript:0.8.5
+$ docker pull gyeh/purescript:0.9.1
```
-Check to see that your image was created:
+Check to see that your image was created:
```
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
-gyeh/purescript 0.8.5 b09608732ec8 0 minutes ago 829.8 MB
+gyeh/purescript 0.9.1 b09608732ec8 0 minutes ago 831.9 MB
```
Try the Purescript REPL (you need to run it in interactive mode with a pseudo-teletype):
```
$ docker run --rm -it b09608732ec8
____ ____ _ _
-| _ \ _ _ _ __ ___/ ___| ___ _ __(_)_ __ | |_
+| _ \ _ _ _ __ ___/ ___| ___ _ __(_)_ __ | |_
| |_) | | | | '__/ _ \___ \ / __| '__| | '_ \| __|
-| __/| |_| | | | __/___) | (__| | | | |_) | |_
+| __/| |_| | | | __/___) | (__| | | | |_) | |_
|_| \__,_|_| \___|____/ \___|_| |_| .__/ \__|
|_|
> :t "Foo"
String
->
+>
See ya!
```
-To start doing real work with it, you need to mount a volume to your docker container when you run it.
+To start doing real work with it, you need to mount a volume to your docker container when you run it.
Clone the [Purescript By Example](https://leanpub.com/purescript/read) code as an initial example:
```
pureuser@1ddb0b0ed568:~/src/chapter3$ pulp build
```
-It should have built successfully. Ignore the warnings -- as of the time of this writing the book hasn't been updated for 0.9.x module syntax that the compiler is mentioning will change. All examples should still build and work as expected. You can also run the tests:
+It should have built successfully. You can also run the tests:
```
pureuser@1ddb0b0ed568:~/src/chapter3$ pulp test
Since you mounted the volume, you can actually edit the code outside of the running docker instance and it will update inside the container!
-Open up `chapter3/test/Main.purs` using your favorite editor, and update `example.address.street` in the `example` record to `"123 Foobar St."`. Now rerun the tests, and you'll see that it updated!
+Open up `chapter3/test/Main.purs` using your favorite editor, and update `example.address.street` in the `example` record to `"123 Foobar St."`. Now rerun the tests, and you'll see that it updated!
```
pureuser@1ddb0b0ed568:~/src/chapter3$ pulp test