dockerfile

Version, currently 0.1.12 versions

github.com/keplersj/dockerfile.cr

Dockerfile Parsing Library written in Crystal

3 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  dockerfile:
    github: keplersj/dockerfile.cr
    version: ~> 0.1.1

Then run:

shards install

shard.yml

Crystal
no constraint declared
License
MIT
Authors
Nikolay Yurin, Kepler Sticka-Jones

Dependencies

This version declares no dependencies.

README

dockerfile.cr

Travis master

Dockerfile parser library, ported from @yurinnick's Ruby library.

Installation

Add this to your application's shard.yml:

dependencies:
  dockerfile:
    github: keplersj/dockerfile.cr

Usage

example.cr


require 'dockerfile'

puts DockerfileParser.load('Dockerfile')

Dockerfile


FROM debian:jessie
MAINTAINER Nikolay Yurin <yurinnick@outlook.com>

RUN apt-get update && \
    apt-get install -y nginx

RUN rm -rf /var/lib/apt/lists/* && \
    chown -R www-data:www-data /var/lib/nginx

VOLUME /var/www/html
WORKDIR /etc/nginx
COPY site-example.conf /etc/nginx/sites-available/site-example.conf
COPY index.html.tmpl /var/www/html/index.html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

output

[
    {command: "FROM",       params: ["debian", "jessie"]},
    {command: "MAINTAINER", params: "Nikolay Yurin <yurinnick@outlook.com>"},
    {command: "RUN",        params: [
                              ["apt-get", "update"],["&"],
                              ["apt-get", "install", "-y", "nginx"]]},
    {command: "RUN",        params: [
                              ["rm", "-rf", "/var/lib/apt/lists/*"],
                              ["&"],
                              ["chown", "-R", "www-data:www-data", "/var/lib/nginx"]]},
    {command: "VOLUME",     params: "/var/www/html"},
    {command: "WORKDIR",    params: "/etc/nginx"},
    {command: "COPY",       params: {src: "site-example.conf",
                                       dst: "/etc/nginx/sites-available/site-example.conf"}},
    {command: "COPY",       params: {src: "index.html.tmpl",
                                       dst: "/var/www/html/index.html"}},
    {command: "EXPOSE",     params: "80"},
    {command: "CMD",        params: ["nginx", "-g", "daemon off;"]}
]

Contributing

  1. Fork it (https://github.com/keplersj/dockerfile.cr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • @yurinnick Nikolay Yurin - creator
  • @keplersj Kepler Sticka-Jones - maintainer, ported to Crystal