elgatosf / jonah Goto Github PK
View Code? Open in Web Editor NEWDevelop, Test, and Deploy Django inside Docker
License: MIT License
Develop, Test, and Deploy Django inside Docker
License: MIT License
When you run the Jonah command without any arguments, it prints out a list of commands. These should be improved:
Example:
Project Management
initialize
Initialize a new jonah project in the current directory
build
Build the image.
Development
cleanbuild
Build the image from scratch instead of relying on cached layers.
develop
Run dev server
reload
Reload Django process on dev server
shell
Get a shell on the dev server
stop
Stop a previously running development server
test
Build and run Unit Tests
compilemessages
Compile internationalization Strings
Deployment
tag
Add git and docker tags
stage
Deploy to staging
deploy
Deploy to production. This command will ask you for a tag before pushing anything to the server
direct_deploy
Deploy as tag "master" on production server, without warning and without asking for confirmation
Administration
clean
Delete exited containers, dangling images, and volumes. Good to clean up hard drive space.
Right now it's pretty hard to explain to new users how the project layout should be. An example project would help here.
This is because the help system code is partially duplicated in jonah/bin/jonah
In supervisord.conf
l5, we try to run /code/deployment/spinup.sh
. This results in an error. The line should instead contain /code/jonah/spinup.sh
In the PyPI distribution, the support_files
directory is missing
We had a rare issue where a OSError or FileSystemError occurred during initialize
. Right now, we always print out a "the directory already exists" error message when that happens, but obviously this is too course grained. Instead, we should print out the exception message directly.
Server 'unix_http_server' running without any HTTP authentication checking
This error message should not occur. In fact, with our config, supervisord's unix_http_server should be completely disabled
Supervisor running as root (no user in config file)
Investigate running supervisor as any other user than root.
Find a way to package and install jonah via pip.
Right now, any operation crashes when the following files are not present:
This is contrary to the idea of jonah being easy to install, and the Python idea of DRY. Instead, the system should fall back gracefully if any of the files are not present and just assume they are empty.
Right now, a change of requirements.txt results in most of the Docker image being rebuild. This is inefficient, slow, and slightly infuriating.
The official Python Docker image repository uses alpine as their base image and includes fresh and nice images.
The default file name for any python project to list its requirements for pip is requirements.txt
. We should not force people to break this convention.
Right now, capture the output of any Docker command, and display it once it's done running. This is annoying for long-running commands, so we'd like to print that output as it's happening.
Traceback (most recent call last):
File "setup.py", line 12, in <module>
from jonah.version import __version__
File "/Users/danieljilg/Repositories/jonah/jonah/__init__.py", line 1, in <module>
from .jonah import Deployer
File "/Users/danieljilg/Repositories/jonah/jonah/jonah.py", line 10, in <module>
import version
ImportError: No module named 'version'
Once we have our example project ( see #1 ), we create an init
command that automatically creates a new empty project at a specified location.
e.g. when
Right now we're only showing a stack trace, which is kinda off-putting to most users.
When Docker is not installed on a machine, jonah initialize
complains about not being able to create a directory. This is misleading. Instead, the error message should advise users to install Docker and make sure the docker
executable is in the PATH.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.