From 4562152a20bd0b08d587fcf3b0dd1a300b9bee9e Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 10 Feb 2015 01:10:08 -0500 Subject: [PATCH] add questionable run script \n update readme --- Dockerfile | 55 ++++++++++++++++++------------------------------------ docker-run | 3 --- mean-dev | 3 +++ startup | 44 ++++++++++++++++++++++++++++++++++++++----- 4 files changed, 60 insertions(+), 45 deletions(-) mode change 100755 => 100644 Dockerfile delete mode 100755 docker-run create mode 100644 mean-dev diff --git a/Dockerfile b/Dockerfile old mode 100755 new mode 100644 index 8c04c58..d6e332d --- a/Dockerfile +++ b/Dockerfile @@ -11,13 +11,6 @@ RUN apt-get -y update && apt-get -y install \ curl \ git - -# install mongo db -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 -RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list -RUN apt-get update && apt-get install -y \ - mongodb-org - # install node.js RUN curl -sL https://deb.nodesource.com/setup | bash - RUN apt-get install -y nodejs @@ -26,15 +19,16 @@ RUN apt-get install -y nodejs RUN apt-get install -y ruby RUN gem install sass + # add a user RUN useradd -ms /bin/bash docker + # switch to the docker user ENV HOME /home/docker USER docker # configure npm to run without sudo permissions -RUN mkdir $HOME/.npm-packages RUN echo 'prefix=${HOME}/.npm-packages' >> $HOME/.npmrc ENV NPM_PACKAGES $HOME/.npm-packages @@ -42,40 +36,27 @@ ENV NODE_PATH $NPM_PACKAGES/lib/node_modules:$NODE_PATH ENV PATH $NPM_PACKAGES/bin:$PATH ENV MANPATH $NPM_PACKAGES/share/man:$(manpath) - # install yeoman tooling and other npm packages RUN npm install -g node-gyp RUN npm install -g yo bower grunt-cli -RUN npm install -g generator-webapp generator-angular generator-angular-fullstack +RUN npm install -g generator-webapp generator-angular generator-angular-fullstack generator-polymer -# setup the mongo path -ENV MONGO_DB $HOME/.mongodb -ENV MONGO_LOG $HOME/.mongodb.log -RUN mkdir $MONGO_DB - -# launch mongo -# this just preps the database - it still needs to be launched inside the docker container -RUN mongod --dbpath $MONGO_DB --logpath $MONGO_LOG --fork --journal - -# create a script for launching mongo from the docker container -# this could go in .bashrc or something -# perhaps mongo should use the /data volume for its database? -RUN mkdir $HOME/bin -RUN echo 'mongod --dbpath $MONGO_DB --logpath $MONGO_LOG --fork --journal' > $HOME/bin/mongod-start -RUN chmod +x $HOME/bin/mongod-start -ENV PATH $PATH:$HOME/bin - -# create a data volume -VOLUME /data - -# expose the ports -EXPOSE 8000 -EXPOSE 9000 -EXPOSE 3000 -EXPOSE 35729 +# #create a data volume +# actually, let's just leave this to the command line +# VOLUME /data +# #expose the ports +# actually, let's just leave this to the command line +# EXPOSE 8000 +# EXPOSE 9000 +# EXPOSE 3000 +# EXPOSE 35729 # configure git -git config --global push.default simple +RUN git config --global push.default simple +RUN git config --global credential.helper cache +RUN git config --global credential.helper 'cache --timeout=43200' -# !!! how to securely configure the username / password? \ No newline at end of file +# it would be nice if npm packages could be shared between instances... +# however it is difficult to both: add global packages from the Dockerfile +# and at the same time have the packages saved in a volume diff --git a/docker-run b/docker-run deleted file mode 100755 index db641d3..0000000 --- a/docker-run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker run --name mean-dev -v ~/docker/data:/data --link=mongodb:mongodb -p=8000:8000 -p=9000:9000 -p=3000:3000 -p=35729:35729 -it adamarthurryan/mean-dev \ No newline at end of file diff --git a/mean-dev b/mean-dev new file mode 100644 index 0000000..150e626 --- /dev/null +++ b/mean-dev @@ -0,0 +1,3 @@ +#!/bin/bash + +docker run -d -it --name=mean-dev --volumes-from=data-files --link=mongodb:mongodb -p=localnum:9000 -p=localnum:34729 -it adamarthurryan/mean-dev \ No newline at end of file diff --git a/startup b/startup index cec5bc7..8a3ce45 100755 --- a/startup +++ b/startup @@ -33,7 +33,7 @@ if docker inspect -f {{.Name}} mongodb echo "* creating new mongodb server" # Start a mongo db server as a daemon # The server will restart automatically on boot and will use the data-db container as a volume - docker run -p 27017 --restart=always --name=mongodb --volumes-from=data-db -d mongo + docker run -p 27017 --name=mongodb --volumes-from=data-db -d mongo fi echo @@ -51,9 +51,43 @@ if docker inspect -f {{.Name}} data-files # sudo docker run --link=mongodb:mongodb -i mongo mongo --host mongodb fi - +echo -# create the samba server -echo "* creating samba server" -sudo docker run --rm -v $(which docker):/docker -v /var/run/docker.sock:/docker.sock svendowideit/samba data-files +#make sure the samba server is running +if docker inspect -f {{.State.Running}} samba-server + then + echo "* samba-server running" + else + # create the samba server + echo "* creating samba server" + sudo docker run --rm -v $(which docker):/docker -v /var/run/docker.sock:/docker.sock svendowideit/samba data-files +fi +echo + +# test if the mean-dev container has been created +if docker inspect -f {{.Name}} mean-dev + then + # make sure the server is running + if docker inspect -f {{.State.Running}} mean-dev + then + echo "* mean-dev exists and is running" + else + echo "* starting mean-dev" + fi + else + echo "* creating mean-dev" + docker run -d --name=mean-dev --volumes-from=data-files --link=mongodb:mongodb -p=8000:8000 -p=9000:9000 -p=3000:3000 -p=35729:35729 -it adamarthurryan/mean-dev +fi + +echo +echo +echo "* to attach to the mean-dev server: " +echo "> sudo docker attach mean-dev" +echo +echo "* to run an instance for access to tools:" +echo "> sudo docker run --volumes-from=data-files --rm -it adamarthurryan/mean-dev" + +echo +echo "* or maybe you want another dev server:" +echo "docker run -d --name=thename --volumes-from=data-files --link=mongodb:mongodb -p=localnum:9000 -p=localnum:34729 -it adamarthurryan/mean-dev"