Git Product home page Git Product logo

skullface20 / chaperone-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from garywiz/chaperone-docker

0.0 0.0 0.0 801 KB

Docker base images which use the chaperone lightweight process manager.

License: Other

Shell 17.95% JavaScript 23.05% C++ 0.54% Python 5.23% PHP 10.60% Java 0.67% Assembly 0.23% CSS 21.96% SourcePawn 0.26% Makefile 0.66% HTML 6.78% ApacheConf 2.11% Smarty 9.96%

chaperone-docker's Introduction

Ubuntu and Alpine Docker images which use the Chaperone process manager

This repository is used to build several base-iamges which use the Chaperone lightweight process manager.

Several images are included based upon Ubuntu 14.04:

In addition, these images are designed for leaner deployments, and are based upon Alpine Linux:

Chaperone is a lightweight process manager specifically designed as an ENTRYPOINT for Docker containers that runs as PID 1. As a single controlling process, it provides:

  • Dependency based parallel start-up of services.
  • Built in syslog implementation, which listens on /dev/log and allows flexible redirection of all log output to docker stdout, or simultaneously to log files.
  • Support for systemd NOTIFY process types with in-container emulation of notify sockets to better manage process life-cycles.
  • PID cleanup, environment variable control, docker-friendly command line options, many many more features.

Chaperone's philosphy is to simplify management of multi-process containers and consolidate everything a container needs in a single, compact process.

The Reference Documentation for Chaperone is complete, and more examples and Docker usage information is on the way.

Chaperone is newly developed, so keep in mind that this is currently in Beta and we would not recommend these images for production. Please submit issues if you have any problems or suggestions!

Try it out

All of these images work the same way. To get a quick idea of how things work, try the LAMP image and create your own userspace development directory. It's best if you do this as a normal user that is a member of the docker group, since that will give you a good idea of how the userspace development model works.

First, get the chaplocal script, a quick script which allows you to create userspace development "home directories":

docker run -i --rm chapdev/chaperone-lamp --task get-chaplocal | sh

You now have a script in your current directory called chaplocal. Use it to create a new LAMP development directory:

./chaplocal test-app

Once you do, you'll be put into the container in a bash shell. You can inspect the running environment, and note how all files, including log files, databases, and development directories are part of your shared mount point, all running under your user ID. When production images are required, a build.sh script inside the test-app directory will let you capture your development files and package them in an image which will run your application.

You can also see a quick overview of the services running by going to the sample site at http://localhost:8080 (where localhost is whatever you've called your docker host machine).

Images also support a get-help feature so you can find out about the version you have, for example you can simply say:

docker run -i --rm chapdev/chaperone-alpinejava --task get-help

We still have more work to do on these images, and feedback would be great. This approach has solved a lot of problems for us.

License

Copyright (c) 2015, Gary J. Wisniewski [email protected]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

chaperone-docker's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.