From 72fe4e556926ab413bbcd78579c4af3516d44d7f Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Tue, 5 Nov 2019 21:37:09 +0300 Subject: [PATCH] Add web server --- Dockerfile | 6 ++++-- Makefile | 4 ++++ shard.lock | 16 ++++++++++++++++ shard.yml | 5 +++++ src/dayoff.cr | 7 +++++++ tools/server | 16 ++++++++++++++++ 6 files changed, 52 insertions(+), 2 deletions(-) create mode 100755 tools/server diff --git a/Dockerfile b/Dockerfile index c423429..ce83b24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,12 @@ -FROM alpine:edge as builder +FROM alpine:3.10.3 as builder # Install crystal and dev libs RUN apk add -u \ + make \ crystal \ shards \ - make \ tzdata \ libc-dev \ + zlib-dev \ + libressl-dev \ yaml-dev diff --git a/Makefile b/Makefile index 8475c18..f4d544c 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,10 @@ format: run: format crystal run $(ENTRY_POINT) +.PHONY: run-server +run-server: format + server run $(ENTRY_POINT) + .PHONY: spec spec: format crystal spec --warnings all --error-on-warnings --error-trace diff --git a/shard.lock b/shard.lock index 4f4c07b..d02dd57 100644 --- a/shard.lock +++ b/shard.lock @@ -4,3 +4,19 @@ shards: github: crystal-ameba/ameba version: 0.10.1 + exception_page: + github: crystal-loot/exception_page + version: 0.1.2 + + kemal: + github: kemalcr/kemal + version: 0.25.2 + + kilt: + github: jeromegn/kilt + version: 0.4.0 + + radix: + github: luislavena/radix + version: 0.3.9 + diff --git a/shard.yml b/shard.yml index a5c876e..148022c 100644 --- a/shard.yml +++ b/shard.yml @@ -12,6 +12,11 @@ crystal: 0.31.1 license: MIT +dependencies: + kemal: + github: kemalcr/kemal + version: ~> 0.25.2 + development_dependencies: ameba: github: crystal-ameba/ameba diff --git a/src/dayoff.cr b/src/dayoff.cr index d617624..2b43e0d 100644 --- a/src/dayoff.cr +++ b/src/dayoff.cr @@ -1,3 +1,4 @@ +require "kemal" require "./dayoff/**" module Dayoff @@ -9,3 +10,9 @@ module Dayoff end end end + +get "/" do + "Hello World!" +end + +Kemal.run diff --git a/tools/server b/tools/server new file mode 100755 index 0000000..3a251b8 --- /dev/null +++ b/tools/server @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -eu + +TTY= + +if [ -t 1 ] ; then + TTY=-t +fi + +docker run -i $TTY \ + -u "$(id -u):$(id -g)" \ + -v "$PWD:/app" \ + -p "3000:3000" \ + -w "/app" \ + dayoff-crystal crystal "$@"