Add alpine-nim image
This commit is contained in:
parent
8999275225
commit
4ad2294060
|
@ -0,0 +1 @@
|
|||
nimcache
|
|
@ -0,0 +1,19 @@
|
|||
FROM alpine:3.3
|
||||
|
||||
ENV PATH=$PATH:/opt/Nim/bin:/root/.nimble/bin
|
||||
|
||||
RUN apk update && \
|
||||
apk add libc-dev gcc curl libgcc git perl && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
RUN mkdir -p /opt && cd /opt && \
|
||||
curl -LO https://github.com/nim-lang/Nim/archive/v0.13.0.tar.gz && \
|
||||
tar zxf v0.13.0.tar.gz && rm -f v0.13.0.tar.gz && \
|
||||
mv Nim-0.13.0 Nim && cd Nim && \
|
||||
git clone --depth 1 git://github.com/nim-lang/csources && \
|
||||
cd csources && sh build.sh && \
|
||||
cd .. && ./bin/nim c koch && ./koch boot -d:release && \
|
||||
nim e install_nimble.nims && \
|
||||
rm -rf /opt/Nim/tests
|
||||
|
||||
WORKDIR /src
|
|
@ -0,0 +1,22 @@
|
|||
(The MIT License)
|
||||
|
||||
Copyright (c) 2015 James Cooper <james@bitmechanic.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
'Software'), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
## Overview
|
||||
|
||||
NOTE: The image has moved to: https://registry.hub.docker.com/u/coopernurse/docker-nim/
|
||||
|
||||
This is a quick attempt to get the Nim compiler and nimble package manager
|
||||
bundled into a Docker image.
|
||||
|
||||
The base image is Alpine Linux (see: https://registry.hub.docker.com/_/alpine/)
|
||||
which keeps things slim.
|
||||
|
||||
## Layout
|
||||
|
||||
Nim is compiled from the latest github source and is in: `/opt/Nim`
|
||||
|
||||
nimble is also compiled from source, but only the compiled binary is kept.
|
||||
|
||||
`PATH` is updated to include: `/opt/Nim/bin` and `/root/.nimble/bin` so both
|
||||
`nim` and `nimble` will be in the PATH by default.
|
||||
|
||||
`WORKDIR` is set to `/src` so if you `-v` mount your local directory to `/src` you can run the
|
||||
compiler directly without changing directory first.
|
||||
|
||||
## Usage
|
||||
|
||||
By using the `-v` flag with `docker run` you can use this image to compile your Nim sources without
|
||||
a local Nim installation. For example, to compile and run `hello.nim` from this repo:
|
||||
|
||||
docker run --rm -v `pwd`:/src coopernurse/docker-nim nim c -r --verbosity:0 hello.nim
|
||||
|
||||
Or to compile to a binary:
|
||||
|
||||
docker run --rm -v `pwd`:/src coopernurse/docker-nim nim c hello.nim
|
||||
|
|
@ -0,0 +1 @@
|
|||
echo "Hello World"
|
Loading…
Reference in New Issue