Skip to content

keplersj/dockerfile.cr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Dockerfile Parsing Library written in Crystal

Resources

License

Stars

Watchers

Forks

Packages

No packages published