diff --git a/demo/kitchen-sink/docs/Dockerfile b/demo/kitchen-sink/docs/Dockerfile new file mode 100644 index 00000000..70270cbf --- /dev/null +++ b/demo/kitchen-sink/docs/Dockerfile @@ -0,0 +1,53 @@ +# +# example Dockerfile for http://docs.docker.io/en/latest/examples/postgresql_service/ +# + +FROM ubuntu +MAINTAINER SvenDowideit@docker.com + +# Add the PostgreSQL PGP key to verify their Debian packages. +# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +# Add PostgreSQL's repository. It contains the most recent stable release +# of PostgreSQL, ``9.3``. +RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list + +# Update the Ubuntu and PostgreSQL repository indexes +RUN apt-get update + +# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3 +# There are some warnings (in red) that show up during the build. You can hide +# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive +RUN apt-get -y -q install python-software-properties software-properties-common +RUN apt-get -y -q install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 + +# Note: The official Debian and Ubuntu images automatically ``apt-get clean`` +# after each ``apt-get`` + +# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed`` +USER postgres + +# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and +# then create a database `docker` owned by the ``docker`` role. +# Note: here we use ``&&\`` to run commands one after the other - the ``\`` +# allows the RUN command to span multiple lines. +RUN /etc/init.d/postgresql start &&\ + psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\ + createdb -O docker docker + +# Adjust PostgreSQL configuration so that remote connections to the +# database are possible. +RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf + +# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf`` +RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf + +# Expose the PostgreSQL port +EXPOSE 5432 + +# Add VOLUMEs to allow backup of config, logs and databases +VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] + +# Set the default command to run when starting the container +CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] \ No newline at end of file diff --git a/lib/ace/ext/modelist.js b/lib/ace/ext/modelist.js index 2f67bee6..66fe3de8 100644 --- a/lib/ace/ext/modelist.js +++ b/lib/ace/ext/modelist.js @@ -63,6 +63,7 @@ var supportedModes = { D: ["d|di"], Dart: ["dart"], Diff: ["diff|patch"], + Dockerfile: ["^Dockerfile"], Dot: ["dot"], Erlang: ["erl|hrl"], EJS: ["ejs"], diff --git a/lib/ace/mode/dockerfile.js b/lib/ace/mode/dockerfile.js index 5a19d89b..732cb33a 100644 --- a/lib/ace/mode/dockerfile.js +++ b/lib/ace/mode/dockerfile.js @@ -33,11 +33,11 @@ define(function(require, exports, module) { var oop = require("../lib/oop"); var ShMode = require("./sh").Mode; -var Dockerfile = require("./sh_highlight_rules").Dockerfile; +var DockerfileHighlightRules = require("./dockerfile_highlight_rules").DockerfileHighlightRules; var CStyleFoldMode = require("./folding/cstyle").FoldMode; var Mode = function() { - this.HighlightRules = Dockerfile; + this.HighlightRules = DockerfileHighlightRules; this.foldingRules = new CStyleFoldMode(); }; oop.inherits(Mode, ShMode); diff --git a/lib/ace/mode/dockerfile_highlight_rules.js b/lib/ace/mode/dockerfile_highlight_rules.js index 7860aaee..ab431eb3 100644 --- a/lib/ace/mode/dockerfile_highlight_rules.js +++ b/lib/ace/mode/dockerfile_highlight_rules.js @@ -34,23 +34,24 @@ define(function(require, exports, module) { var oop = require("../lib/oop"); var ShHighlightRules = require("./sh_highlight_rules").ShHighlightRules; -var SvgHighlightRules = function() { +var DockerfileHighlightRules = function() { ShHighlightRules.call(this); var startRules = this.$rules.start; for (var i = 0; i < startRules.length; i++) { if (startRules[i].token == "variable.language") { startRules.splice(i, 0, { - token: "keyword", - regexp: "(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD)", + token: "variable.language", + regex: "(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD)\\b)", caseInsensitive: true }); break; } } + }; -oop.inherits(SvgHighlightRules, ShHighlightRules); +oop.inherits(DockerfileHighlightRules, ShHighlightRules); -exports.SvgHighlightRules = SvgHighlightRules; +exports.DockerfileHighlightRules = DockerfileHighlightRules; }); diff --git a/lib/ace/mode/svg.js b/lib/ace/mode/svg.js index aede9c0a..8c608e82 100644 --- a/lib/ace/mode/svg.js +++ b/lib/ace/mode/svg.js @@ -34,7 +34,6 @@ define(function(require, exports, module) { var oop = require("../lib/oop"); var XmlMode = require("./xml").Mode; var JavaScriptMode = require("./javascript").Mode; -var Tokenizer = require("../tokenizer").Tokenizer; var SvgHighlightRules = require("./svg_highlight_rules").SvgHighlightRules; var MixedFoldMode = require("./folding/mixed").FoldMode; var XmlFoldMode = require("./folding/xml").FoldMode; diff --git a/lib/ace/mode/text_highlight_rules.js b/lib/ace/mode/text_highlight_rules.js index c4fcf588..07285661 100644 --- a/lib/ace/mode/text_highlight_rules.js +++ b/lib/ace/mode/text_highlight_rules.js @@ -189,7 +189,7 @@ var TextHighlightRules = function() { // skip included rules since they are already processed //i += args.length - 3; i--; - toInsert = null + toInsert = null; } if (rule.keywordMap) { @@ -199,7 +199,7 @@ var TextHighlightRules = function() { delete rule.defaultToken; } } - }; + } Object.keys(rules).forEach(processState, this); }; @@ -223,7 +223,7 @@ var TextHighlightRules = function() { return ignoreCase ? function(value) {return keywords[value.toLowerCase()] || defaultToken } : function(value) {return keywords[value] || defaultToken }; - } + }; this.getKeywords = function() { return this.$keywords;