Compare commits

..

5 Commits

Author SHA1 Message Date
mdipierro
2e4449796e tesing 2018-05-01 15:41:53 -05:00
mdipierro
4eb82780ea tesing 2018-05-01 15:34:07 -05:00
mdipierro
09d400fab3 tesing 2018-05-01 15:19:57 -05:00
mdipierro
59957954fd tesing 2018-05-01 14:51:39 -05:00
mdipierro
d052d1e06c tesing 2018-05-01 14:33:56 -05:00
296 changed files with 399 additions and 7202 deletions

View File

@@ -1,35 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@@ -1,17 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -1,7 +1,3 @@
## 2.17.1-2
- pydal 18.08
- many small bug fixes
## 2.16.1
- pydal 17.11
- bootstrap 4

View File

@@ -44,7 +44,7 @@ rmfiles:
rm -rf applications/examples/uploads/*
src:
### Use semantic versioning
echo 'Version 2.17.2-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
echo 'Version 2.16.1-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
### rm -f all junk files
#make clean
# make rmfiles

View File

@@ -1 +1 @@
Version 2.17.2-stable+timestamp.2018.10.06.11.34.06
Version 2.16.1-stable+timestamp.2018.03.08.10.23.01

View File

@@ -43,8 +43,8 @@ class Servers:
@staticmethod
def cherrypy(app, address, **options):
from cheroot.wsgi import Server as WSGIServer
server = WSGIServer(address, app)
from cherrypy import wsgiserver
server = wsgiserver.CherryPyWSGIServer(address, app)
server.start()
@staticmethod
@@ -212,16 +212,16 @@ def mongrel2_handler(application, conn, debug=False):
while True:
if debug:
print("WAITING FOR REQUEST")
print "WAITING FOR REQUEST"
# receive a request
req = conn.recv()
if debug:
print("REQUEST BODY: %r\n" % req.body)
print "REQUEST BODY: %r\n" % req.body
if req.is_disconnect():
if debug:
print("DISCONNECT")
print "DISCONNECT"
continue # effectively ignore the disconnect from the client
# Set a couple of environment attributes a.k.a. header attributes
@@ -247,7 +247,7 @@ def mongrel2_handler(application, conn, debug=False):
environ['wsgi.input'] = req.body
if debug:
print("ENVIRON: %r\n" % environ)
print "ENVIRON: %r\n" % environ
# SimpleHandler needs file-like stream objects for
# requests, errors and responses
@@ -282,10 +282,10 @@ def mongrel2_handler(application, conn, debug=False):
# return the response
if debug:
print("RESPONSE: %r\n" % response)
print "RESPONSE: %r\n" % response
if errors:
if debug:
print("ERRORS: %r" % errors)
print "ERRORS: %r" % errors
data = "%s\r\n\r\n%s" % (data, errors)
conn.reply_http(
req, data, code=code, status=status, headers=headers)
@@ -355,8 +355,8 @@ def main():
dest='workers',
help='number of workers number')
(options, args) = parser.parse_args()
print('starting %s on %s:%s...' % (
options.server, options.ip, options.port))
print 'starting %s on %s:%s...' % (
options.server, options.ip, options.port)
run(options.server, options.ip, options.port,
logging=options.logging, profiler=options.profiler_dir,
options=options)

View File

@@ -224,15 +224,15 @@ def select():
session.last_orderby = orderby
session.last_query = request.vars.query
form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px',
_name='query', _value=request.vars.query or '', _class="form-control",
_name='query', _value=request.vars.query or '',
requires=IS_NOT_EMPTY(
error_message=T("Cannot be empty")))), TR(T('Update:'),
INPUT(_name='update_check', _type='checkbox',
value=False), INPUT(_style='width:400px',
_name='update_fields', _value=request.vars.update_fields
or '', _class="form-control")), TR(T('Delete:'), INPUT(_name='delete_check',
or '')), TR(T('Delete:'), INPUT(_name='delete_check',
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit'), _class="btn btn-primary"))),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
_action=URL(r=request, args=request.args))
tb = None
@@ -274,7 +274,7 @@ def select():
formcsv = FORM(str(T('or import from csv file')) + " ",
INPUT(_type='file', _name='csvfile'),
INPUT(_type='hidden', _value=csv_table, _name='table'),
INPUT(_type='submit', _value=T('import'), _class="btn btn-primary"))
INPUT(_type='submit', _value=T('import')))
else:
formcsv = None
if formcsv and formcsv.process().accepted:
@@ -392,7 +392,7 @@ def ccache():
cache.disk.clear()
session.flash += T("Disk Cleared")
redirect(URL(r=request))
try:
from pympler.asizeof import asizeof
except ImportError:
@@ -588,7 +588,7 @@ def manage():
auth.table_permission().group_id.label = T('Role')
auth.table_permission().name.label = T('Permission')
if table == auth.table_user():
linked_tables = [auth.settings.table_membership_name]
linked_tables=[auth.settings.table_membership_name]
elif table == auth.table_group():
orderby = 'role' if not request.args(3) or '.group_id' not in request.args(3) else None
elif table == auth.table_permission():
@@ -604,13 +604,13 @@ def manage():
def hooks():
import functools
import inspect
list_op = ['_%s_%s' %(h,m) for h in ['before', 'after'] for m in ['insert','update','delete']]
tables = []
with_build_it = False
list_op=['_%s_%s' %(h,m) for h in ['before', 'after'] for m in ['insert','update','delete']]
tables=[]
with_build_it=False
for db_str in sorted(databases):
db = databases[db_str]
for t in db.tables:
method_hooks = []
method_hooks=[]
for op in list_op:
functions = []
for f in getattr(db[t], op):
@@ -630,16 +630,16 @@ def hooks():
except:
pass
if len(functions):
method_hooks.append({'name': op, 'functions':functions})
method_hooks.append({'name':op, 'functions':functions})
if len(method_hooks):
tables.append({'name': "%s.%s" % (db_str, t), 'slug': IS_SLUG()("%s.%s" % (db_str,t))[0], 'method_hooks':method_hooks})
tables.append({'name':"%s.%s" % (db_str,t), 'slug': IS_SLUG()("%s.%s" % (db_str,t))[0], 'method_hooks':method_hooks})
# Render
ul_main = UL(_class='nav nav-list')
for t in tables:
ul_main.append(A(t['name'], _onclick="collapse('a_%s')" % t['slug']))
ul_t = UL(_class='nav nav-list', _id="a_%s" % t['slug'], _style='display:none')
for op in t['method_hooks']:
ul_t.append(LI(op['name']))
ul_t.append(LI (op['name']))
ul_t.append(UL([LI(A(f['funcname'], _class="editor_filelink", _href=f['url']if 'url' in f else None, **{'_data-lineno':f['lineno']-1})) for f in op['functions']]))
ul_main.append(ul_t)
return ul_main
@@ -652,10 +652,10 @@ def hooks():
def d3_graph_model():
""" See https://www.facebook.com/web2py/posts/145613995589010 from Bruno Rocha
and also the app_admin bg_graph_model function
Create a list of table dicts, called "nodes"
"""
nodes = []
links = []
@@ -665,20 +665,20 @@ def d3_graph_model():
fields = []
for field in db[tablename]:
f_type = field.type
if not isinstance(f_type, str):
if not isinstance(f_type,str):
disp = ' '
elif f_type == 'string':
disp = field.length
disp = field.length
elif f_type == 'id':
disp = "PK"
disp = "PK"
elif f_type.startswith('reference') or \
f_type.startswith('list:reference'):
disp = "FK"
else:
disp = ' '
fields.append(dict(name=field.name, type=field.type, disp=disp))
fields.append(dict(name= field.name, type=field.type, disp = disp))
if isinstance(f_type, str) and (
if isinstance(f_type,str) and (
f_type.startswith('reference') or
f_type.startswith('list:reference')):
referenced_table = f_type.split()[1].split('.')[0]

View File

@@ -562,11 +562,7 @@ def enable():
os.unlink(filename)
return SPAN(T('Disable'), _style='color:green')
else:
if PY2:
safe_open(filename, 'wb').write('disabled: True\ntime-disabled: %s' % request.now)
else:
str_ = 'disabled: True\ntime-disabled: %s' % request.now
safe_open(filename, 'wb').write(str_.encode('utf-8'))
safe_open(filename, 'wb').write('disabled: True\ntime-disabled: %s' % request.now)
return SPAN(T('Enable'), _style='color:red')
@@ -646,10 +642,7 @@ def edit():
# show settings tab and save prefernces
if 'settings' in request.vars:
if request.post_vars: # save new preferences
if PY2:
post_vars = request.post_vars.items()
else:
post_vars = list(request.post_vars.items())
post_vars = request.post_vars.items()
# Since unchecked checkbox are not serialized, we must set them as false by hand to store the correct preference in the settings
post_vars += [(opt, 'false') for opt in preferences if opt not in request.post_vars]
if config.save(post_vars):

View File

@@ -29,14 +29,5 @@ jQuery(function(){
}
hoverMenu(); // first page load
jQuery(window).resize(hoverMenu); // on resize event
jQuery('ul.nav li.dropdown a').click(function(){
if(jQuery(this).attr("target")){
window.open(
jQuery(this).attr('href'),
jQuery(this).attr('target') // <- This is what makes it open in a new window.
);
} else {
window.location=jQuery(this).attr('href');
}
});
jQuery('ul.nav li.dropdown a').click(function(){window.location=jQuery(this).attr('href');});
});

View File

@@ -9,19 +9,16 @@
});
//--></script>
<div class="row">
<div class="col-md-12">
{{if request.function=='index':}}
<h2>{{=T("Available Databases and Tables")}}</h2>
{{if not databases:}}{{=T("No databases in this application")}}{{pass}}
<ul class="nav nav-tabs" id="myTab">
<li class="nav-item"><a href="#alltables" data-toggle="tab" class="nav-link active">Tables</a></li>
<li class="nav-item"><a href="#hooks" data-toggle="tab" class="nav-link">Hooks</a></li>
<li class="active" ><a href="#alltables" data-toggle="tab">Tables</a></li>
<li><a href="#hooks" data-toggle="tab">Hooks</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="alltables">
<table class="table table-striped">
<table class="table">
{{for db in sorted(databases):}}
{{for table in databases[db].tables:}}
{{qry='%s.%s.id>0'%(db,table)}}
@@ -40,10 +37,10 @@
{{pass}}
<tr>
<th style="font-size: 1.75em;">
&raquo; {{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
</th>
<td>
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-primary")}}
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-default")}}
</td>
</tr>
{{pass}}
@@ -64,31 +61,28 @@
</pre>
{{pass}}
{{if table:}}
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-primary", _role="button")}}<br/><br/>
<hr />
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-default")}}<br/><br/>
<h3>{{=T("Rows in Table")}}</h3><br/>
{{else:}}
<h3>{{=T("Rows selected")}}</h3><br/>
{{pass}}
{{=form}}
<p class="text-muted">{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
<p>{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
{{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.')}}<br/>
{{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
<br/><br/>
<h4>{{=T("%s selected", nrows)}}</h4>
{{if start>0:}}{{=A(T('previous %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start-step)),_class="btn btn-primary")}}{{pass}}
{{if stop<nrows:}}{{=A(T('next %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start+step)),_class="btn btn-primary")}}{{pass}}
{{if start>0:}}{{=A(T('previous %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start-step)),_class="btn btn-default")}}{{pass}}
{{if stop<nrows:}}{{=A(T('next %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start+step)),_class="btn btn-default")}}{{pass}}
{{if rows:}}
<div style="overflow:auto; width:80%;">
{{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}}
{{upload=URL('download',args=request.args[0])}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='sortable')}}
</div>
{{pass}}
<br/><br/>
<hr />
<h3>{{=T("Import/Export")}}</h3><br/>
<a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}" class="btn btn-primary">{{=T("export as csv file")}}</a>
<br/><br/><h3>{{=T("Import/Export")}}</h3><br/>
<a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}" class="btn btn-default">{{=T("export as csv file")}}</a>
{{=formcsv or ''}}
{{elif request.function=='insert':}}
@@ -274,6 +268,3 @@
{{pass}}
</div>
{{pass}}
</div>
</div>

View File

@@ -224,15 +224,15 @@ def select():
session.last_orderby = orderby
session.last_query = request.vars.query
form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px',
_name='query', _value=request.vars.query or '', _class="form-control",
_name='query', _value=request.vars.query or '',
requires=IS_NOT_EMPTY(
error_message=T("Cannot be empty")))), TR(T('Update:'),
INPUT(_name='update_check', _type='checkbox',
value=False), INPUT(_style='width:400px',
_name='update_fields', _value=request.vars.update_fields
or '', _class="form-control")), TR(T('Delete:'), INPUT(_name='delete_check',
or '')), TR(T('Delete:'), INPUT(_name='delete_check',
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit'), _class="btn btn-primary"))),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
_action=URL(r=request, args=request.args))
tb = None
@@ -274,7 +274,7 @@ def select():
formcsv = FORM(str(T('or import from csv file')) + " ",
INPUT(_type='file', _name='csvfile'),
INPUT(_type='hidden', _value=csv_table, _name='table'),
INPUT(_type='submit', _value=T('import'), _class="btn btn-primary"))
INPUT(_type='submit', _value=T('import')))
else:
formcsv = None
if formcsv and formcsv.process().accepted:
@@ -392,7 +392,7 @@ def ccache():
cache.disk.clear()
session.flash += T("Disk Cleared")
redirect(URL(r=request))
try:
from pympler.asizeof import asizeof
except ImportError:
@@ -588,7 +588,7 @@ def manage():
auth.table_permission().group_id.label = T('Role')
auth.table_permission().name.label = T('Permission')
if table == auth.table_user():
linked_tables = [auth.settings.table_membership_name]
linked_tables=[auth.settings.table_membership_name]
elif table == auth.table_group():
orderby = 'role' if not request.args(3) or '.group_id' not in request.args(3) else None
elif table == auth.table_permission():
@@ -604,13 +604,13 @@ def manage():
def hooks():
import functools
import inspect
list_op = ['_%s_%s' %(h,m) for h in ['before', 'after'] for m in ['insert','update','delete']]
tables = []
with_build_it = False
list_op=['_%s_%s' %(h,m) for h in ['before', 'after'] for m in ['insert','update','delete']]
tables=[]
with_build_it=False
for db_str in sorted(databases):
db = databases[db_str]
for t in db.tables:
method_hooks = []
method_hooks=[]
for op in list_op:
functions = []
for f in getattr(db[t], op):
@@ -630,16 +630,16 @@ def hooks():
except:
pass
if len(functions):
method_hooks.append({'name': op, 'functions':functions})
method_hooks.append({'name':op, 'functions':functions})
if len(method_hooks):
tables.append({'name': "%s.%s" % (db_str, t), 'slug': IS_SLUG()("%s.%s" % (db_str,t))[0], 'method_hooks':method_hooks})
tables.append({'name':"%s.%s" % (db_str,t), 'slug': IS_SLUG()("%s.%s" % (db_str,t))[0], 'method_hooks':method_hooks})
# Render
ul_main = UL(_class='nav nav-list')
for t in tables:
ul_main.append(A(t['name'], _onclick="collapse('a_%s')" % t['slug']))
ul_t = UL(_class='nav nav-list', _id="a_%s" % t['slug'], _style='display:none')
for op in t['method_hooks']:
ul_t.append(LI(op['name']))
ul_t.append(LI (op['name']))
ul_t.append(UL([LI(A(f['funcname'], _class="editor_filelink", _href=f['url']if 'url' in f else None, **{'_data-lineno':f['lineno']-1})) for f in op['functions']]))
ul_main.append(ul_t)
return ul_main
@@ -652,10 +652,10 @@ def hooks():
def d3_graph_model():
""" See https://www.facebook.com/web2py/posts/145613995589010 from Bruno Rocha
and also the app_admin bg_graph_model function
Create a list of table dicts, called "nodes"
"""
nodes = []
links = []
@@ -665,20 +665,20 @@ def d3_graph_model():
fields = []
for field in db[tablename]:
f_type = field.type
if not isinstance(f_type, str):
if not isinstance(f_type,str):
disp = ' '
elif f_type == 'string':
disp = field.length
disp = field.length
elif f_type == 'id':
disp = "PK"
disp = "PK"
elif f_type.startswith('reference') or \
f_type.startswith('list:reference'):
disp = "FK"
else:
disp = ' '
fields.append(dict(name=field.name, type=field.type, disp=disp))
fields.append(dict(name= field.name, type=field.type, disp = disp))
if isinstance(f_type, str) and (
if isinstance(f_type,str) and (
f_type.startswith('reference') or
f_type.startswith('list:reference')):
referenced_table = f_type.split()[1].split('.')[0]

View File

@@ -9,19 +9,16 @@
});
//--></script>
<div class="row">
<div class="col-md-12">
{{if request.function=='index':}}
<h2>{{=T("Available Databases and Tables")}}</h2>
{{if not databases:}}{{=T("No databases in this application")}}{{pass}}
<ul class="nav nav-tabs" id="myTab">
<li class="nav-item"><a href="#alltables" data-toggle="tab" class="nav-link active">Tables</a></li>
<li class="nav-item"><a href="#hooks" data-toggle="tab" class="nav-link">Hooks</a></li>
<li class="active" ><a href="#alltables" data-toggle="tab">Tables</a></li>
<li><a href="#hooks" data-toggle="tab">Hooks</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="alltables">
<table class="table table-striped">
<table class="table">
{{for db in sorted(databases):}}
{{for table in databases[db].tables:}}
{{qry='%s.%s.id>0'%(db,table)}}
@@ -40,10 +37,10 @@
{{pass}}
<tr>
<th style="font-size: 1.75em;">
&raquo; {{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
</th>
<td>
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-primary")}}
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-default")}}
</td>
</tr>
{{pass}}
@@ -64,31 +61,28 @@
</pre>
{{pass}}
{{if table:}}
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-primary", _role="button")}}<br/><br/>
<hr />
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-default")}}<br/><br/>
<h3>{{=T("Rows in Table")}}</h3><br/>
{{else:}}
<h3>{{=T("Rows selected")}}</h3><br/>
{{pass}}
{{=form}}
<p class="text-muted">{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
<p>{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
{{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.')}}<br/>
{{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
<br/><br/>
<h4>{{=T("%s selected", nrows)}}</h4>
{{if start>0:}}{{=A(T('previous %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start-step)),_class="btn btn-primary")}}{{pass}}
{{if stop<nrows:}}{{=A(T('next %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start+step)),_class="btn btn-primary")}}{{pass}}
{{if start>0:}}{{=A(T('previous %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start-step)),_class="btn btn-default")}}{{pass}}
{{if stop<nrows:}}{{=A(T('next %s rows') % step,_href=URL('select',args=request.args[0],vars=dict(start=start+step)),_class="btn btn-default")}}{{pass}}
{{if rows:}}
<div style="overflow:auto; width:80%;">
{{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}}
{{upload=URL('download',args=request.args[0])}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='sortable')}}
</div>
{{pass}}
<br/><br/>
<hr />
<h3>{{=T("Import/Export")}}</h3><br/>
<a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}" class="btn btn-primary">{{=T("export as csv file")}}</a>
<br/><br/><h3>{{=T("Import/Export")}}</h3><br/>
<a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}" class="btn btn-default">{{=T("export as csv file")}}</a>
{{=formcsv or ''}}
{{elif request.function=='insert':}}
@@ -274,6 +268,3 @@
{{pass}}
</div>
{{pass}}
</div>
</div>

View File

@@ -62,16 +62,16 @@
</center>
<p style="text-align:left;">
The source code version works on Windows and most Unix systems, including <b>Linux</b>, <b>BSD</b> and <b>Mac</b> . It requires Python 2.6 (no more supported), Python 2.7 (stable) or Python 3.5+ (recommended for new projects) already installed on your system.
There are also binary packages for Windows and Mac OS X. They include the Python 2.7 interpreter so you do not need to have it pre-installed.
The source code version works on all supported platforms, including Linux, but it requires Python 2.6, or 2.7 (recommended).
It runs on Windows and most Unix systems, including <b>Linux</b> and <b>BSD</b>.
</p>
<h3>Instructions</h3>
<p>With the binary packages, after download, just unzip it and then click on web2py.exe (windows) or web2py.app (osx).
If you prefer to run it from source with your own Python interpreter alreay installed, type:</p>
{{=CODE("python web2py.py", language=None, counter='>', _class='boxCode')}}
<p>After download, unzip it and click on web2py.exe (windows) or web2py.app (osx).
To run from source, type:</p>
{{=CODE("python2.7 web2py.py", language=None, counter='>', _class='boxCode')}}
<p>or for more info type:</p>
{{=CODE("python web2py.py -h", language=None, counter='>', _class='boxCode')}}
{{=CODE("python2.7 web2py.py -h", language=None, counter='>', _class='boxCode')}}
<h3>Caveats</h3>

View File

@@ -4,7 +4,7 @@
<div class="twothirds">
<div class="padded">
<h3><img src="{{=URL('static/images', 'web2py_logo.png')}}"> Web Framework</h3>
<p>Free open source full-stack framework for rapid development of fast, scalable, <a href="http://www.web2py.com/book/default/chapter/01#Security" target="_blank">secure</a> and portable database-driven web-based applications. Written and programmable in <a href="http://www.python.org" target="_blank">Python</a> (version 3 and 2.7).</p>
<p>Free open source full-stack framework for rapid development of fast, scalable, <a href="http://www.web2py.com/book/default/chapter/01#Security" target="_blank">secure</a> and portable database-driven web-based applications. Written and programmable in <a href="http://www.python.org" target="_blank">Python</a>.</p>
<table width="100%">
<tr>
<td>
@@ -18,7 +18,7 @@
</a>
</td>
<td>
<a class="noeffect" href="https://www.packtpub.com/web-development/web2py-application-development-cookbook">
<a class="noeffect" href="http://link.packtpub.com/SUlnrN">
<img src="{{=URL('static','images/book-recipes.png')}}" />
</a>
</td>

View File

@@ -111,7 +111,6 @@
</li><li>Ovidio Marinho Falcao Neto (tests and plugin developer)
</li><li>Pai (internationalization)
</li><li>Paolo Caruccio (SQLFORM.grid query)
</li><li>Paolo Pastori
</li><li>Patrick Breitenbach
</li><li><a href="mailto:phyo.arkarlwin@star-nix.net">Phyo Arkar Lwin</a> (web hosting and Jython tester)
</li><li>Pierre Thibault (<a href="http://code.google.com/p/neo-web2py2eclipse/">Eclipse integration</a> and custom import)

View File

@@ -22,12 +22,11 @@
'Administrative interface': 'Interface administrativa',
'Ajax Recipes': 'Receitas de Ajax',
'An error occured, please [[reload %s]] the page': 'An error occured, please [[reload %s]] the page',
'API Example': 'API Example',
'appadmin is disabled because insecure channel': 'Administração desativada porque o canal não é seguro',
'Are you sure you want to delete this object?': 'Você tem certeza que quer apagar este objeto?',
'Available Databases and Tables': 'Bancos de dados e tabelas disponíveis',
'Buy this book': 'Compre o livro',
"Buy web2py's book": 'Compre o livro do web2py',
"Buy web2py's book": 'Compre o livro do web2buy',
'cache': 'cache',
'Cache': 'Cache',
'Cache Cleared': 'Cache limpo',
@@ -83,7 +82,6 @@
'Forms and Validators': 'Formulários e Validadores',
'Free Applications': 'Aplicações gratuitas',
'Graph Model': 'Graph Model',
'Grid Example': 'Exemplo de Grade',
'Group ID': 'ID do Grupo',
'Groups': 'Grupos',
'Hello World': 'Olá Mundo',
@@ -108,27 +106,26 @@
'Layouts': 'Layouts',
'Live chat': 'Chat ao vivo',
'Live Chat': 'Chat ao vivo',
'Log In': 'Entrar',
'Log In': 'Log In',
'login': 'Entrar',
'Login': 'Entrar',
'Login': 'Autentique-se',
'logout': 'Sair',
'Lost Password': 'Esqueceu sua senha?',
'lost password?': 'esqueceu sua senha?',
'Lost your password?': 'Esqueceu sua senha?',
'Main Menu': 'Menu Principal',
'Manage %(action)s': 'Gerenciar %(action)s',
'Manage Access Control': 'Gerenciar controle de acesso',
'Manage %(action)s': 'Manage %(action)s',
'Manage Access Control': 'Manage Access Control',
'Manage Cache': 'Gerenciar Cache',
'Memberships': 'Grupos',
'Memberships': 'Memberships',
'Menu Model': 'Modelo de Menu',
'My Sites': 'Meus sites',
'Name': 'Nome',
'New Record': 'Novo Registro',
'new record inserted': 'novo registro inserido',
'next %s rows': 'próximas %s ´linhas',
'next %s rows': 'next %s rows',
'next 100 rows': 'próximas 100 linhas',
'No databases in this application': 'Não há bancos de dados nesta aplicação',
'Number of entries: **%s**': 'Número de entradas: **%s**',
'Number of entries: **%s**': 'Number of entries: **%s**',
'Object or table name': 'Nome do objeto do da tabela',
'Online book': 'Online book',
'Online examples': 'Exemplos online',
@@ -143,37 +140,35 @@
'Plugins': 'Plugins',
'Powered by': 'Desenvolvido com',
'Preface': 'Prefácio',
'previous %s rows': '%s linhas anteriores',
'previous %s rows': 'previous %s rows',
'previous 100 rows': '100 linhas anteriores',
'pygraphviz library not found': 'biblioteca pygraphviz não encontrada',
'pygraphviz library not found': 'pygraphviz library not found',
'Python': 'Python',
'Query:': 'Consulta:',
'Quick Examples': 'Exemplos rápidos',
'RAM': 'RAM',
'RAM Cache Keys': 'RAM Cache Keys',
'Ram Cleared': 'Ram Limpa',
'Ram Cleared': 'Ram Cleared',
'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
'Recipes': 'Receitas',
'Record': 'Registro',
'record does not exist': 'registro não existe',
'Record ID': 'ID do Registro',
'Record id': 'id do registro',
'register': 'Registre-se',
'Register': 'Registre-se',
'register': 'Registre-se',
'Registration identifier': 'Idenficador de registro',
'Registration key': 'Chave de registro',
'Remember me (for 30 days)': 'Mantenha-me logado (por 30 dias)',
'Reset Password key': 'Resetar chave de senha',
'Resources': 'Recursos',
'Role': 'Papel',
'Roles': 'Roles',
'Rows in Table': 'Linhas na tabela',
'Rows selected': 'Linhas selecionadas',
'Save model as...': 'Salvar modelo como...',
'Save model as...': 'Save model as...',
'Semantic': 'Semântico',
'Services': 'Serviço',
'Sign Up': 'Cadastrar',
'Sign up': 'Cadastrar',
'Sign Up': 'Sign Up',
'Size of cache:': 'Tamanho do cache:',
'state': 'estado',
'Statistics': 'Estatísticas',
@@ -209,7 +204,6 @@
'Welcome to web2py': 'Bem-vindo ao web2py',
'Welcome to web2py!': 'Bem-vindo ao web2py!',
'Which called the function %s located in the file %s': 'Que chamou a função %s localizada no arquivo %s',
'Wiki Example': 'Wiki Example',
'Working...': 'Trabalhando...',
'You are successfully running web2py': 'Você está executando o web2py com sucesso',
'You are successfully running web2py.': 'Você está executando o web2py com sucesso.',

View File

@@ -130,7 +130,7 @@ response.google_analytics_id = configuration.get('google.analytics_id')
# -------------------------------------------------------------------------
if configuration.get('scheduler.enabled'):
from gluon.scheduler import Scheduler
scheduler = Scheduler(db, heartbeat=configuration.get('scheduler.heartbeat'))
scheduler = Scheduler(db, heartbeat=configuration.get('heartbeat'))
# -------------------------------------------------------------------------
# Define your tables below (or better in another model file) for example

View File

@@ -348,13 +348,3 @@ td.w2p_fc,
.icon.pen:before { content: "\f040";}
.icon.arrowright:before { content: "\f061";}
.icon.magnifier:before { content: "\f002";}
.web2py_table_selectable_actions {
padding-top: 10px;
float: right;
}
.web2py_table_selectable_actions input {
padding: 5px 7px;
margin-right: 10px;
}

View File

@@ -52,7 +52,7 @@
});
}
var ul = this;
$(ul).find(":text").addClass('form-control').wrap("<div class='input-group'></div>").after('<div class="input-group-append"><i class="fa fa-plus-circle"></i></div>&nbsp;<div class="input-group-append"><i class="fa fa-minus-circle"></i></div>').keypress(function(e) {
$(ul).find(":text").addClass('form-control').wrap("<div class='input-group'></div>").after('<div class="input-group-addon"><i class="glyphicon glyphicon-plus"></i></div><div class="input-group-addon"><i class="glyphicon glyphicon-minus"></i></div>').keypress(function(e) {
return (e.which == 13) ? pe(ul, e) : true;
}).next().click(function(e) {
pe(ul, e);

View File

@@ -9,9 +9,6 @@
});
//--></script>
<div class="row">
<div class="col-md-12">
{{if request.function=='index':}}
<h2>{{=T("Available Databases and Tables")}}</h2>
{{if not databases:}}{{=T("No databases in this application")}}{{pass}}
@@ -274,6 +271,3 @@
{{pass}}
</div>
{{pass}}
</div>
</div>

View File

@@ -1,51 +1,47 @@
{{extend 'layout.html'}}
{{block header}}
<div class="jumbotron jumbotron-fluid background" style="background-color: #333; color:white; padding:30px;word-wrap:break-word;">
<div class="jumbotron jumbotron-fluid" style="background-color: #333; color:white; padding:30px;word-wrap:break-word;">
<div class="container center">
<h1 class="display-5">/{{=request.application}}/{{=request.controller}}/{{=request.function}}</h1>
</div>
</div>
{{end}}
<div class="row">
<div class="col-md-12">
{{if 'message' in globals():}}
<h2>{{=message}}</h2>
<p class="lead">{{=T('How did you get here?')}}</p>
<ol style="word-wrap:break-word;">
<li>{{=T('You are successfully running web2py')}}</li>
<li>{{=XML(T('You visited the url %s', A(request.env.path_info,_href=request.env.path_info)))}}</li>
<li>{{=XML(T('Which called the function %s located in the file %s',
(A(request.function+'()',_href='#'),
A('web2py/applications/%(application)s/controllers/%(controller)s.py' % request,
_href=URL('admin','default','peek', args=(request.application,'controllers',request.controller+'.py'))))))}}</li>
<li>{{=XML(T('The output of the file is a dictionary that was rendered by the view %s',
A('web2py/applications/%(application)s/views/%(controller)s/index.html' % request,
_href=URL('admin','default','peek',args=(request.application,'views',request.controller,'index.html')))))}}</li>
<li>{{=T('You can modify this application and adapt it to your needs')}}</li>
</ol>
<div class="jumbotron jumbotron-fluid" style="padding:30px;word-wrap:break-word;">
<div class="container center">
<a class="btn btn-primary" href="{{=URL('admin','default','index')}}">
<i class="fa fa-cog"></i>
{{=T("admin")}}
</a>
<a class="btn btn-secondary" href="{{=URL('examples','default','index')}}">{{=T("Online examples")}}</a>
<a class="btn btn-secondary" href="http://web2py.com">web2py.com</a>
<a class="btn btn-secondary" href="http://web2py.com/book">{{=T('Documentation')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','api_get_user_email')}}">{{=T('API Example')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','grid/auth_user')}}">{{=T('Grid Example')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','wiki')}}">{{=T('Wiki Example')}}</a>
</div>
</div>
{{elif 'content' in globals():}}
{{=content}}
{{else:}}
{{=BEAUTIFY(response._vars)}}
{{pass}}
{{if 'message' in globals():}}
<h2>{{=message}}</h2>
<p class="lead">{{=T('How did you get here?')}}</p>
<ol style="word-wrap:break-word;">
<li>{{=T('You are successfully running web2py')}}</li>
<li>{{=XML(T('You visited the url %s', A(request.env.path_info,_href=request.env.path_info)))}}</li>
<li>{{=XML(T('Which called the function %s located in the file %s',
(A(request.function+'()',_href='#'),
A('web2py/applications/%(application)s/controllers/%(controller)s.py' % request,
_href=URL('admin','default','peek', args=(request.application,'controllers',request.controller+'.py'))))))}}</li>
<li>{{=XML(T('The output of the file is a dictionary that was rendered by the view %s',
A('web2py/applications/%(application)s/views/%(controller)s/index.html' % request,
_href=URL('admin','default','peek',args=(request.application,'views',request.controller,'index.html')))))}}</li>
<li>{{=T('You can modify this application and adapt it to your needs')}}</li>
</ol>
<div class="jumbotron jumbotron-fluid" style="padding:30px;word-wrap:break-word;">
<div class="container center">
<a class="btn btn-primary" href="{{=URL('admin','default','index')}}">
<i class="fa fa-cog"></i>
{{=T("admin")}}
</a>
<a class="btn btn-secondary" href="{{=URL('examples','default','index')}}">{{=T("Online examples")}}</a>
<a class="btn btn-secondary" href="http://web2py.com">web2py.com</a>
<a class="btn btn-secondary" href="http://web2py.com/book">{{=T('Documentation')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','api_get_user_email')}}">{{=T('API Example')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','grid/auth_user')}}">{{=T('Grid Example')}}</a>
<a class="btn btn-secondary" href="{{=URL('default','wiki')}}">{{=T('Wiki Example')}}</a>
</div>
</div>
{{elif 'content' in globals():}}
{{=content}}
{{else:}}
{{=BEAUTIFY(response._vars)}}
{{pass}}

View File

@@ -1,24 +1,26 @@
{{extend 'layout.html'}}
<div class="row">
<div id="web2py_user_form" class="col-lg-6" style="background-color:white; margin: 0 auto 5px auto; box-shadow: 0 0 5px #a1a1a1; border-radius:5px;padding: 20px">
<h2>
{{=T('Sign Up') if request.args(0) == 'register' else T('Log In') if request.args(0) == 'login' else T(request.args(0).replace('_',' ').title())}}
</h2>
{{=form}}
{{if request.args(0)=='login' and not 'register' in auth.settings.actions_disabled:}}
<a href="{{=URL('user/register')}}">{{=T('Register')}}</a>
<br/>
{{pass}}
{{if request.args(0)=='login' and not 'retrieve_password' in auth.settings.actions_disabled:}}
<a href="{{=URL('user/retrieve_password')}}">{{=T('Lost your password?')}}</a>
{{pass}}
{{if request.args(0)=='register':}}
<a href="{{=URL('user/login')}}">{{=T('Login')}}</a>
{{pass}}
</div>
</div>
<h2>
{{=T('Sign Up') if request.args(0) == 'register' else T('Log In') if request.args(0) == 'login' else T(request.args(0).replace('_',' ').title())}}
</h2>
<div class="container">
<div class="row">
<div id="web2py_user_form" class="col-lg-6">
{{
if request.args(0)=='login':
if not 'register' in auth.settings.actions_disabled:
form.add_button(T('Sign Up'),URL(args='register', vars={'_next': request.vars._next} if request.vars._next else None),_class='btn btn-default btn-secondary')
pass
if not 'request_reset_password' in auth.settings.actions_disabled:
form.add_button(T('Lost Password'),URL(args='request_reset_password'),_class='btn btn-default btn-secondary')
pass
pass
=form
}}
</div>
</div>
</div>
{{block page_js}}

View File

@@ -5,7 +5,7 @@ filename = '%s/%s.html' % (request.controller,request.function)
if os.path.exists(os.path.join(request.folder,'views',filename)):
html=response.render(filename)
else:
html=BODY(BEAUTIFY(response._vars))
html=BODY(BEAUTIFY(response._vars)).xml()
pass
=pdf_from_html(html)
}}

View File

@@ -35,13 +35,13 @@
<body>
<div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div>
<!-- Navbar ======================================= -->
<nav class="navbar navbar-light navbar-expand-md bg-faded bg-dark navbar-dark justify-content-center">
<a href="http://web2py.com" class="navbar-brand d-flex w-50 mr-auto">web2py</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse w-100" id="navbarNavDropdown">
<ul class="navbar-nav w-100 justify-content-center">
<nav class="navbar navbar-expand-lg navbar-light bg-faded">
<a class="navbar-brand" href="http://web2py.com">web2py</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbarNavDropdown" class="collapse navbar-collapse">
<ul class="navbar-nav">
{{for _item in response.menu or []:}}
{{if len(_item)<4 or not _item[3]:}}
<li class="nav-item {{if _item[1]:}}active{{pass}}">
@@ -57,13 +57,13 @@
</div>
</li>
{{pass}}
{{pass}}
{{pass}}
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
</form>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
</form>
{{if 'auth' in globals():}}
<ul class="nav navbar-nav ml-auto w-100 justify-content-end">
<ul class="navbar-nav ml-lg-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{if auth.user:}}{{=auth.user.first_name}}{{else:}}LOGIN{{pass}}
@@ -86,19 +86,25 @@
{{pass}}
</div>
</li>
</ul>
</ul>
{{pass}}
</div>
</nav>
<!-- Masthead ===================================== -->
<!-- Masthead ===================================== -->
{{block header}}
{{end}}
<!-- Main ========================================= -->
<!-- Begin page content -->
<div class="container-fluid main-container">
{{include}}
{{=response.toolbar() if response.show_toolbar else ''}}
<div class="row">
<div class="col-md-12">
{{block center}}
{{include}}
{{end}}
{{=response.toolbar() if response.show_toolbar else ''}}
</div>
</div>
</div>
{{block footer}} <!-- this is default footer -->

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget py-gevent && \
pip install --upgrade pip && \
pip install virtualenv
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gevent -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-gevent
docker build -t your_username/alpine-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-gevent your_username/alpine-web2py-gevent
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-gevent
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-gevent
docker login -u your_username
docker build -t your_username/alpine-web2py-gevent .
docker push your_username/alpine-web2py-gevent
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-gevent your_username/alpine-web2py-gevent
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gevent:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget py-gunicorn && \
pip install --upgrade pip && \
pip install virtualenv
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gunicorn -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-gunicorn
docker build -t your_username/alpine-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-gunicorn your_username/alpine-web2py-gunicorn
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-gunicorn
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-gunicorn
docker login -u your_username
docker build -t your_username/alpine-web2py-gunicorn .
docker push your_username/alpine-web2py-gunicorn
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-gunicorn your_username/alpine-web2py-gunicorn
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gunicorn:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget && \
pip install --upgrade pip && \
pip install virtualenv paste
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s paste -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-paste
docker build -t your_username/alpine-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-paste your_username/alpine-web2py-paste
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-paste
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-paste
docker login -u your_username
docker build -t your_username/alpine-web2py-paste .
docker push your_username/alpine-web2py-paste
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-paste your_username/alpine-web2py-paste
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-paste:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,22 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget openssl && \
pip install --upgrade pip && \
pip install virtualenv
RUN wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /web2py/applications/examples && \
cd /web2py && \
openssl genrsa 1024 > web2py.key && chmod 400 web2py.key && \
openssl req -new -x509 -nodes -sha1 -days 1780 -subj '/C=ID/ST=Jakarta/L=Jakarta/O=stifix/OU=IT/CN=stifix.com' -key web2py.key > web2py.crt && \
openssl x509 -noout -fingerprint -text < web2py.crt > web2py.info && \
chmod 755 -R /web2py
WORKDIR /web2py
EXPOSE 443
CMD python /web2py/web2py.py --nogui --no-banner -a 'a' -c web2py.crt -k web2py.key -i 0.0.0.0 -p 443

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-rocket-ssl
docker build -t your_username/alpine-web2py-rocket-ssl .
docker run -d -v applications:/web2py/applications -p 443:443 --name alpine-web2py-rocket-ssl your_username/alpine-web2py-rocket-ssl
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-rocket-ssl
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-rocket-ssl
docker login -u your_username
docker build -t your_username/alpine-web2py-rocket-ssl .
docker push your_username/alpine-web2py-rocket-ssl
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-rocket-ssl .
docker run -d -v applications:/web2py/applications -p 443:443 --name alpine-web2py-rocket-ssl your_username/
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-rocket-ssl:
build: .
ports:
- "443:443"
volumes:
- applications:/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget && \
pip install --upgrade pip && \
pip install virtualenv
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-rocket
docker build -t your_username/alpine-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-rocket your_username/alpine-web2py-rocket
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-rocket
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-rocket
docker login -u your_username
docker build -t your_username/alpine-web2py-rocket .
docker push your_username/alpine-web2py-rocket
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-rocket your_username/
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-rocket:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget py-tornado && \
pip install --upgrade pip && \
pip install virtualenv
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s tornado -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-tornado
docker build -t your_username/alpine-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-tornado your_username/alpine-web2py-tornado
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-tornado
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-tornado
docker login -u your_username
docker build -t your_username/alpine-web2py-tornado .
docker push your_username/alpine-web2py-tornado
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-tornado your_username/
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-tornado:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget py-waitress && \
pip install --upgrade pip && \
pip install virtualenv
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s waitress -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-waitress
docker build -t your_username/alpine-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-waitress your_username/alpine-web2py-waitress
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-waitress
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-waitress
docker login -u your_username
docker build -t your_username/alpine-web2py-waitress .
docker push your_username/alpine-web2py-waitress
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-waitress your_username/alpine-web2py-waitress
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-waitress:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM alpine:latest
#LABEL your_label
RUN apk add --no-cache python py-pip py-setuptools unzip wget && \
pip install --upgrade pip && \
pip install virtualenv wsgiref
RUN addgroup -S web2py && \
adduser -D -S -G web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s wsgiref -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Alpine/web2py-wsgiref
docker build -t your_username/alpine-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-wsgiref your_username/alpine-web2py-wsgiref
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Alpine/web2py-wsgiref
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Alpine/web2py-wsgiref
docker login -u your_username
docker build -t your_username/alpine-web2py-wsgiref .
docker push your_username/alpine-web2py-wsgiref
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/alpine-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name alpine-web2py-wsgiref your_username/alpine-web2py-wsgiref
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-wsgiref:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-eventlet --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s eventlet -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-eventlet
docker build -t your_username/centos-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-eventlet your_username/centos-web2py-eventlet
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-eventlet
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-eventlet
docker login -u your_username
docker build -t your_username/centos-web2py-eventlet .
docker push your_username/centos-web2py-eventlet
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-eventlet your_username/centos-web2py-eventlet
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-eventlet:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-gevent --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gevent -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-gevent
docker build -t your_username/centos-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-gevent your_username/centos-web2py-gevent
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-gevent
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-gevent
docker login -u your_username
docker build -t your_username/centos-web2py-gevent .
docker push your_username/centos-web2py-gevent
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-gevent your_username/centos-web2py-gevent
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gevent:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-gunicorn --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gunicorn -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-gunicorn
docker build -t your_username/centos-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-gunicorn your_username/centos-web2py-gunicorn
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-gunicorn
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-gunicorn
docker login -u your_username
docker build -t your_username/centos-web2py-gunicorn .
docker push your_username/centos-web2py-gunicorn
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-gunicorn your_username/centos-web2py-gunicorn
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gunicorn:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-paste --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s paste -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-paste
docker build -t your_username/centos-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-paste your_username/centos-web2py-paste
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-paste
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-paste
docker login -u your_username
docker build -t your_username/centos-web2py-paste .
docker push your_username/centos-web2py-paste
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-paste your_username/centos-web2py-paste
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-paste:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-rocket
docker build -t your_username/centos-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-rocket your_username/centos-web2py-rocket
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-rocket
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-rocket
docker login -u your_username
docker build -t your_username/centos-web2py-rocket .
docker push your_username/centos-web2py-rocket
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-rocket your_username/centos-web2py-rocket
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-rocket:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-tornado --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s tornado -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-tornado
docker build -t your_username/centos-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-tornado your_username/centos-web2py-tornado
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-tornado
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-tornado
docker login -u your_username
docker build -t your_username/centos-web2py-tornado .
docker push your_username/centos-web2py-tornado
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-tornado your_username/centos-web2py-tornado
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-tornado:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-twisted-web --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s twisted -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-twisted
docker build -t your_username/centos-web2py-twisted .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-twisted your_username/centos-web2py-twisted
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-twisted
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-twisted
docker login -u your_username
docker build -t your_username/centos-web2py-twisted .
docker push your_username/centos-web2py-twisted
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-twisted .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-twisted your_username/centos-web2py-twisted
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-twisted:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget python-waitress --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s waitress -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-waitress
docker build -t your_username/centos-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-waitress your_username/centos-web2py-waitress
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-waitress
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-waitress
docker login -u your_username
docker build -t your_username/centos-web2py-waitress .
docker push your_username/centos-web2py-waitress
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-waitress your_username/centos-web2py-waitress
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-waitress:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM centos:latest
#LABEL your_label
RUN yum install -y epel-release && \
yum install -y python python-pip python-setuptools unzip wget --nogpgcheck && \
pip install --upgrade pip && \
pip install virtualenv wsgiref
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s wsgiref -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Centos/web2py-wsgiref
docker build -t your_username/centos-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-wsgiref your_username/centos-web2py-wsgiref
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Centos/web2py-wsgiref
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Centos/web2py-wsgiref
docker login -u your_username
docker build -t your_username/centos-web2py-wsgiref .
docker push your_username/centos-web2py-wsgiref
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/centos-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name centos-web2py-wsgiref your_username/centos-web2py-wsgiref
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-wsgiref:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget && \
pip install virtualenv diesel
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s diesel -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-diesel
docker build -t your_username/debian-web2py-diesel .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-diesel your_username/debian-web2py-diesel
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-diesel
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-diesel
docker login -u your_username
docker build -t your_username/debian-web2py-diesel .
docker push your_username/debian-web2py-diesel
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-diesel .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-diesel your_username/debian-web2py-diesel
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-diesel:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-eventlet && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s eventlet -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-eventlet
docker build -t your_username/debian-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-eventlet your_username/debian-web2py-eventlet
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-eventlet
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-eventlet
docker login -u your_username
docker build -t your_username/debian-web2py-eventlet .
docker push your_username/debian-web2py-eventlet
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-eventlet your_username/debian-web2py-eventlet
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-eventlet:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-gevent && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gevent -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-gevent
docker build -t your_username/debian-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-gevent your_username/debian-web2py-gevent
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-gevent
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-gevent
docker login -u your_username
docker build -t your_username/debian-web2py-gevent .
docker push your_username/debian-web2py-gevent
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-gevent .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-gevent your_username/debian-web2py-gevent
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gevent:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-gunicorn && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s gunicorn -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-gunicorn
docker build -t your_username/debian-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-gunicorn your_username/debian-web2py-gunicorn
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-gunicorn
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-gunicorn
docker login -u your_username
docker build -t your_username/debian-web2py-gunicorn .
docker push your_username/debian-web2py-gunicorn
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-gunicorn .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-gunicorn your_username/debian-web2py-gunicorn
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-gunicorn:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-paste && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s paste -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-paste
docker build -t your_username/debian-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-paste your_username/debian-web2py-paste
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-paste
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-paste
docker login -u your_username
docker build -t your_username/debian-web2py-paste .
docker push your_username/debian-web2py-paste
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-paste .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-paste your_username/debian-web2py-paste
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-paste:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,28 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget && \
pip install --upgrade pip && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-rocket
docker build -t your_username/debian-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-rocket your_username/debian-web2py-rocket
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-rocket
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-rocket
docker login -u your_username
docker build -t your_username/debian-web2py-rocket .
docker push your_username/debian-web2py-rocket
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-rocket .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-rocket your_username/debian-web2py-rocket
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-rocket:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-tornado && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s tornado -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-tornado
docker build -t your_username/debian-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-tornado your_username/debian-web2py-tornado
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-tornado
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-tornado
docker login -u your_username
docker build -t your_username/debian-web2py-tornado .
docker push your_username/debian-web2py-tornado
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-tornado .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-tornado your_username/debian-web2py-tornado
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-tornado:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget python-twisted && \
pip install virtualenv
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s twisted -i 0.0.0.0 -p 8000

View File

@@ -1,41 +0,0 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-twisted
docker build -t your_username/debian-web2py-twisted .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-twisted your_username/debian-web2py-twisted
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-twisted
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-twisted
docker login -u your_username
docker build -t your_username/debian-web2py-twisted .
docker push your_username/debian-web2py-twisted
# Shell (Copy the content of the file into this scaffolding shell and replace the variable text $ with \$ )
cat << EOF > docker-compose.yml
EOF
cat docker-compose.yml
cat << EOF > Dockerfile
EOF
cat Dockerfile
docker build -t your_username/debian-web2py-twisted .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-twisted your_username/debian-web2py-twisted
docker-compose up -d
docker-compose ps

View File

@@ -1,12 +0,0 @@
version: '3.1'
services:
web2py-twisted:
build: .
ports:
- "8000:8000"
volumes:
- applications:/home/web2py/web2py/applications
volumes:
applications:

View File

@@ -1,27 +0,0 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget && \
pip install virtualenv waitress
RUN groupadd -r web2py && \
useradd -m -r -g web2py web2py
USER web2py
RUN virtualenv /home/web2py && \
rm -rf /home/web2py/web2py && \
cd /home/web2py/ && \
rm -f web2py_src.zip && \
wget -c http://web2py.com/examples/static/web2py_src.zip && \
unzip -o web2py_src.zip && \
rm -rf /home/web2py/web2py/applications/examples && \
chmod 755 -R /home/web2py/web2py
WORKDIR /home/web2py/web2py
EXPOSE 8000
CMD . /home/web2py/bin/activate && /usr/bin/python /home/web2py/web2py/anyserver.py -s waitress -i 0.0.0.0 -p 8000

Some files were not shown because too many files have changed in this diff Show More