瀏覽代碼

Add a simple initial "bashbrew" Dockerfile

Tianon Gravi 10 年之前
父節點
當前提交
54539d39ad
共有 4 個文件被更改,包括 26 次插入9 次删除
  1. 1 0
      .dockerignore
  2. 3 4
      .gitignore
  3. 12 0
      Dockerfile
  4. 10 5
      bashbrew/bashbrew.sh

+ 1 - 0
.dockerignore

@@ -0,0 +1 @@
+.gitignore

+ 3 - 4
.gitignore

@@ -1,4 +1,3 @@
-*~
-*.pyc
-/bashbrew/logs
-/bashbrew/src
+.git
+bashbrew/logs
+bashbrew/src

+ 12 - 0
Dockerfile

@@ -0,0 +1,12 @@
+FROM docker:git
+
+RUN apk add --update \
+		bash \
+	&& rm -rf /var/cache/apk/*
+
+ENV DIR /usr/src/official-images
+WORKDIR $DIR
+COPY . $DIR
+RUN ln -s "$(readlink -f bashbrew/bashbrew.sh)" /usr/local/bin/bashbrew
+
+VOLUME $DIR/bashbrew/logs $DIR/bashbrew/src

+ 10 - 5
bashbrew/bashbrew.sh

@@ -6,17 +6,13 @@ trap 'echo >&2 Ctrl+C captured, exiting; exit 1' SIGINT
 
 dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
 
-library="$dir/../library"
+library="$(dirname "$dir")/library"
 src="$dir/src"
 logs="$dir/logs"
 namespaces='_'
 docker='docker'
 retries='4'
 
-library="$(readlink -f "$library")"
-src="$(readlink -f "$src")"
-logs="$(readlink -f "$logs")"
-
 self="$(basename "$0")"
 
 usage() {
@@ -107,6 +103,15 @@ while true; do
 	esac
 done
 
+if [ ! -d "$library" ]; then
+	echo >&2 "error: library directory '$library' does not exist"
+	exit 1
+fi
+library="$(readlink -f "$library")"
+mkdir -p "$src" "$logs"
+src="$(readlink -f "$src")"
+logs="$(readlink -f "$logs")"
+
 # which subcommand
 subcommand="$1"
 shift || { usage >&2 && exit 1; }