Compare commits

...

70 Commits

Author SHA1 Message Date
mdipierro
285013a64a version 2.17.1 2018-08-05 17:57:11 -07:00
mdipierro
bcf288f55d fixed pydal 18.08 2018-08-05 17:56:03 -07:00
mdipierro
88c98cad5c fixed pydal 18.08 2018-08-05 17:22:23 -07:00
mdipierro
2203e0e49f Merge pull request #1970 from web2py/jwt_allow_decorator_fix
Jwt allow decorator fix
2018-08-05 17:21:17 -07:00
mdipierro
540bda993f Merge pull request #1967 from misl6/master
Fixes login_bare + register_bare w/ custom login_userfield
2018-08-05 17:19:34 -07:00
mdipierro
65b9c9ce17 Merge pull request #1960 from daniellibonati/master
Proposed Fix for #1959 "Can't initiate simplejsonrpc service object"
2018-08-05 17:18:29 -07:00
mdipierro
5f9a097505 Merge pull request #1956 from marian-vignau/master
Proposed fix to solve crash on markdown2 module
2018-08-05 17:18:00 -07:00
mdipierro
b33efddb77 Merge pull request #1954 from gonguinguen/patch-3
Catch KeyError in download function
2018-08-05 17:17:28 -07:00
mdipierro
577c45d183 Merge pull request #1951 from yamandu/issue/1950
correction to generate options also for fields generated with…
2018-08-05 17:16:47 -07:00
mdipierro
077eb4263d Merge pull request #1946 from leonelcamara/patch-17
Import urllib stuff from _compat
2018-08-05 17:14:43 -07:00
mdipierro
2904dae2c3 Merge pull request #1945 from leonelcamara/patch-16
Import urllib stuff from _compat
2018-08-05 17:14:29 -07:00
mdipierro
225380d00b Merge pull request #1944 from leonelcamara/patch-15
PY3 compatibility
2018-08-05 17:14:16 -07:00
mdipierro
fc295bb617 Merge pull request #1943 from leonelcamara/patch-14
fixed XML import
2018-08-05 17:14:03 -07:00
mdipierro
6438200923 Merge pull request #1942 from jvanbraekel/master
Use request_reset_password +  PDF and TSV exports
2018-08-05 17:13:45 -07:00
mdipierro
8c7955e107 Merge pull request #1937 from sugizo/add_docker
add another server in some os (docker)
2018-08-05 17:12:12 -07:00
jvanbraekel
68284be7b0 Fix pdf export , make it python3 compatible, Fix markmin2latex import 2018-08-02 11:04:14 +02:00
jvanbraekel
0d8dc294e9 Fix tsv ext, add tsv hidden exporter , use csv exporter for tsv export 2018-08-02 10:59:51 +02:00
jvanbraekel
cfe9c74eb1 Merge pull request #1 from web2py/master
web2py origin changes
2018-08-01 11:12:32 +02:00
jvanbraekel
e73029ce37 fix markmin2latex import
Add full path name in markmin2latex import
2018-07-31 10:13:21 +02:00
Mirko Galimberti
a053df7b75 Adds type error for handling NoneType exceptions 2018-07-27 12:03:39 +02:00
Mirko Galimberti
a22aac1e65 Fixes ipython console listindex error 2018-07-27 11:18:24 +02:00
Michele Comitini
6f2be48e25 generate HTTP error code also if jwt token parameter is missing in request 2018-07-26 20:01:38 +02:00
Gautham Pai
39dd86d6fb Raise an error only if required is True and token is not present 2018-07-24 17:40:15 +05:30
Gautham
bc59d58a3e Fixing a bug - the allows_jwt method does NOT throw any error if a token is not found at all.
This could cause potential security issues as developers decorate their methods with @allows_jwt and then not pass a token and the method allows the call.

Signed-off-by: Gautham <buzypi@gmail.com>
2018-07-24 15:12:20 +05:30
Mirko Galimberti
1aab089205 Fixes login_bare + register_bare w/ custom login_userfield 2018-07-19 17:13:38 +02:00
Daniel Libonati
ea1d9acfad Fix #1959 2018-06-30 21:55:16 -03:00
mavignau@gmail.com
90222d7867 Fixed crash encountered in markdown2 module 2018-06-19 21:25:55 -03:00
mavignau@gmail.com
e6b7388758 Fix proposed to crash in linux on import markdown module 2018-06-19 21:18:33 -03:00
mavignau@gmail.com
52672530b7 Fix proposed to crash in linux on import markdown module 2018-06-19 21:13:53 -03:00
Lisandro
911cf430a9 Catch KeyError in download function
This change is necessary to avoid an error ticket when you delete an upload field from a table (and also from the model definition). In those cases, requests to old URLs will throw a KeyError. With this fix, those requests return 404 as expected.

Also, catching AttributeError is still necessary for the situation when the table is removed entirely. If an old request come in, that sentence will throw an AttributeError, that will be catched properly, and request will return 404.
2018-06-15 08:30:44 -03:00
mdipierro
d7624b95f8 fixed a typo in validators, thanks Paolo 2018-06-15 05:08:12 +02:00
mdipierro
09271bff5f simplfied a test, thanks Paolo 2018-06-15 05:07:28 +02:00
mdipierro
f239882d32 fxed various sqlhtml bugs, thanks Paolo 2018-06-15 05:06:49 +02:00
Carlos Costa
9076053f7e correction to generate options also for fields generated with requires=IS_IN_SET or any field with options attribute 2018-06-12 19:55:25 -03:00
Leonel Câmara
c97cac19f0 Import urllib stuff from _compat 2018-06-08 10:54:57 +01:00
Leonel Câmara
b5e8cad672 Import urllib stuff from _compat 2018-06-08 10:45:36 +01:00
Leonel Câmara
d502275fc8 PY3 compatibility 2018-06-08 10:41:13 +01:00
Leonel Câmara
98c70d8a70 fixed XML import 2018-06-07 23:17:07 +01:00
jvanbraekel
b7ba4a15f1 Update request_reset_password in user.htlm
Update /user/request_reset_password to user/retrieve_password and linked settings option.
According to https://web2py.readthedocs.io/en/latest/_modules/gluon/tools.html#Auth 'request_reset_password' should not even be exposed anymore. (but this is still the case).
2018-06-07 16:14:52 +02:00
sugizo
3585ef828e add some of server (diesel, eventlet, gevent, paste, twisted, waitress, wsgiref) in some os 2018-06-02 06:53:31 +07:00
mdipierro
14083907e5 Merge pull request #1936 from sugizo/add_docker
add docker
2018-06-01 13:55:51 -05:00
mdipierro
c358d2a851 better validators and comments, thanks Paolo 2018-06-01 13:34:27 -05:00
mdipierro
319490edc1 fixed one more test 2018-06-01 13:19:35 -05:00
mdipierro
7fce2d04af fixed tests for IS_LIST_OF 2018-06-01 12:56:45 -05:00
mdipierro
c3f11dc976 Merge pull request #1935 from sugizo/fix_anyserver_cherrypy
anyserver.py with cherrypy
2018-06-01 12:45:21 -05:00
mdipierro
246b5293e5 Merge pull request #1933 from jvanbraekel/master
Update layout navbar for centering navbar items
2018-06-01 12:44:50 -05:00
mdipierro
d383da31c8 Merge pull request #1928 from umbromancer/master
Added missing config section in Scheduler
2018-06-01 12:44:20 -05:00
mdipierro
eaaa9203f7 Merge pull request #1927 from alexandremasbr/fixes_layout_to_translate
fixes allow translate strings at views/default/user.html
2018-06-01 12:43:42 -05:00
mdipierro
7176524e4f Merge pull request #1926 from alexandremasbr/language_pt_br_corrections
fixes in languages/pt-br.py
2018-06-01 12:43:19 -05:00
mdipierro
e740451b69 Merge pull request #1923 from robinvandernoord/patch-1
Changed file to open
2018-06-01 12:41:40 -05:00
mdipierro
4d9eaf1ac4 Merge pull request #1922 from cccaballero/user_page_bottom_margin
Add bottom margin on welcome user page
2018-06-01 12:41:18 -05:00
mdipierro
dfd5752814 Merge pull request #1921 from leonelcamara/patch-13
Fixes #1918
2018-06-01 12:40:58 -05:00
mdipierro
d2de59c05d Merge pull request #1917 from cccaballero/NEWINSTALL_file_unlink
#1911 NEWINSTALL file unlink issue
2018-06-01 12:40:28 -05:00
sugizo
ba917605ac anyserver can use cherrypy issue on https://github.com/web2py/web2py/issues/1934 2018-06-01 14:51:14 +07:00
Julien Van Braekel
98c2788203 Update layout navbarfor bootstrap 4 2018-05-31 09:32:11 +02:00
mdipierro
8d865f1c5f better error handing in IS_LIST_OF, thanks Paolo 2018-05-24 11:17:49 -05:00
umbromancer
61be442614 Added missing config section in Scheduler 2018-05-14 11:38:55 +01:00
mdipierro
bb338ef19c added acknowledgement to Paolo Pastori 2018-05-13 20:15:30 -05:00
Alexandre Andrade
c313611e0d fixes in languages/pt-br.py 2018-05-11 02:38:59 +00:00
Alexandre Andrade
716c697a60 fixes allow translate strings at views/default/user.html 2018-05-11 02:31:14 +00:00
d1ed9ab88c fixes in languages/pt-br.py 2018-05-11 02:12:17 +00:00
Robin
16e3e7c35e Changed file to open
file is deprecated in python 3, but open works on both. So for compatibility I would suggest to use open over file.
2018-05-08 11:00:35 +02:00
Carlos Cesar Caballero Díaz
9e794b1929 Add bottom margin on welcome user page container for properly shadow visualization 2018-05-07 13:56:00 -04:00
mdipierro
ae60debc90 fixed up export 2018-05-06 15:09:11 -05:00
Leonel Câmara
18414ab8c2 Fixes #1918
Took the chance to also update the syntax from the old style "except socket.error, e:" to "except socket.error as e"
2018-05-03 17:15:53 +01:00
mdipierro
4ed36cfb1f welcome improvements 2018-05-01 16:08:40 -05:00
mdipierro
fda67e1be5 request method 2018-05-01 15:58:14 -05:00
mdipierro
4130f87c62 fixed languages.py py3 bug 2018-05-01 15:53:19 -05:00
Carlos Cesar Caballero Díaz
f50380af73 #1911 NEWINSTALL file unlink issue 2018-04-30 14:17:44 -04:00
sugizo
a3df59fceb add_docker 2018-02-05 07:06:40 +07:00
279 changed files with 6900 additions and 325 deletions

View File

@@ -1,3 +1,7 @@
## 2.17.1
- 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.16.1-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
echo 'Version 2.17.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.16.1-stable+timestamp.2018.03.08.10.23.01
Version 2.17.1-stable+timestamp.2018.08.05.17.57.00

View File

@@ -43,8 +43,8 @@ class Servers:
@staticmethod
def cherrypy(app, address, **options):
from cherrypy import wsgiserver
server = wsgiserver.CherryPyWSGIServer(address, app)
from cheroot.wsgi import Server as WSGIServer
server = WSGIServer(address, app)
server.start()
@staticmethod

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 '',
_name='query', _value=request.vars.query or '', _class="form-control",
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 '')), TR(T('Delete:'), INPUT(_name='delete_check',
or '', _class="form-control")), TR(T('Delete:'), INPUT(_name='delete_check',
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
TR('', '', INPUT(_type='submit', _value=T('submit'), _class="btn btn-primary"))),
_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')))
INPUT(_type='submit', _value=T('import'), _class="btn btn-primary"))
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,16 +9,19 @@
});
//--></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="active" ><a href="#alltables" data-toggle="tab">Tables</a></li>
<li><a href="#hooks" data-toggle="tab">Hooks</a></li>
<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>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="alltables">
<table class="table">
<table class="table table-striped">
{{for db in sorted(databases):}}
{{for table in databases[db].tables:}}
{{qry='%s.%s.id>0'%(db,table)}}
@@ -37,10 +40,10 @@
{{pass}}
<tr>
<th style="font-size: 1.75em;">
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
&raquo; {{=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-default")}}
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-primary")}}
</td>
</tr>
{{pass}}
@@ -61,28 +64,31 @@
</pre>
{{pass}}
{{if table:}}
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-default")}}<br/><br/>
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-primary", _role="button")}}<br/><br/>
<hr />
<h3>{{=T("Rows in Table")}}</h3><br/>
{{else:}}
<h3>{{=T("Rows selected")}}</h3><br/>
{{pass}}
{{=form}}
<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/>
<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/>
{{=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-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 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 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='sortable')}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}}
</div>
{{pass}}
<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>
<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>
{{=formcsv or ''}}
{{elif request.function=='insert':}}
@@ -268,3 +274,6 @@
{{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 '',
_name='query', _value=request.vars.query or '', _class="form-control",
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 '')), TR(T('Delete:'), INPUT(_name='delete_check',
or '', _class="form-control")), TR(T('Delete:'), INPUT(_name='delete_check',
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
TR('', '', INPUT(_type='submit', _value=T('submit'), _class="btn btn-primary"))),
_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')))
INPUT(_type='submit', _value=T('import'), _class="btn btn-primary"))
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,16 +9,19 @@
});
//--></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="active" ><a href="#alltables" data-toggle="tab">Tables</a></li>
<li><a href="#hooks" data-toggle="tab">Hooks</a></li>
<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>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="alltables">
<table class="table">
<table class="table table-striped">
{{for db in sorted(databases):}}
{{for table in databases[db].tables:}}
{{qry='%s.%s.id>0'%(db,table)}}
@@ -37,10 +40,10 @@
{{pass}}
<tr>
<th style="font-size: 1.75em;">
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
&raquo; {{=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-default")}}
{{=A(str(T('New Record')),_href=URL('insert',args=[db,table]),_class="btn btn-primary")}}
</td>
</tr>
{{pass}}
@@ -61,28 +64,31 @@
</pre>
{{pass}}
{{if table:}}
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-default")}}<br/><br/>
{{=A(str(T('New Record')),_href=URL('insert',args=[request.args[0],table]),_class="btn btn-primary", _role="button")}}<br/><br/>
<hr />
<h3>{{=T("Rows in Table")}}</h3><br/>
{{else:}}
<h3>{{=T("Rows selected")}}</h3><br/>
{{pass}}
{{=form}}
<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/>
<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/>
{{=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-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 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 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='sortable')}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}}
</div>
{{pass}}
<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>
<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>
{{=formcsv or ''}}
{{elif request.function=='insert':}}
@@ -268,3 +274,6 @@
{{pass}}
</div>
{{pass}}
</div>
</div>

View File

@@ -111,6 +111,7 @@
</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,11 +22,12 @@
'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 web2buy',
"Buy web2py's book": 'Compre o livro do web2py',
'cache': 'cache',
'Cache': 'Cache',
'Cache Cleared': 'Cache limpo',
@@ -82,6 +83,7 @@
'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',
@@ -106,26 +108,27 @@
'Layouts': 'Layouts',
'Live chat': 'Chat ao vivo',
'Live Chat': 'Chat ao vivo',
'Log In': 'Log In',
'Log In': 'Entrar',
'login': 'Entrar',
'Login': 'Autentique-se',
'Login': 'Entrar',
'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': 'Manage %(action)s',
'Manage Access Control': 'Manage Access Control',
'Manage %(action)s': 'Gerenciar %(action)s',
'Manage Access Control': 'Gerenciar controle de acesso',
'Manage Cache': 'Gerenciar Cache',
'Memberships': 'Memberships',
'Memberships': 'Grupos',
'Menu Model': 'Modelo de Menu',
'My Sites': 'Meus sites',
'Name': 'Nome',
'New Record': 'Novo Registro',
'new record inserted': 'novo registro inserido',
'next %s rows': 'next %s rows',
'next %s rows': 'próximas %s ´linhas',
'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**': 'Number of entries: **%s**',
'Number of entries: **%s**': 'Número de entradas: **%s**',
'Object or table name': 'Nome do objeto do da tabela',
'Online book': 'Online book',
'Online examples': 'Exemplos online',
@@ -140,35 +143,37 @@
'Plugins': 'Plugins',
'Powered by': 'Desenvolvido com',
'Preface': 'Prefácio',
'previous %s rows': 'previous %s rows',
'previous %s rows': '%s linhas anteriores',
'previous 100 rows': '100 linhas anteriores',
'pygraphviz library not found': 'pygraphviz library not found',
'pygraphviz library not found': 'biblioteca pygraphviz não encontrada',
'Python': 'Python',
'Query:': 'Consulta:',
'Quick Examples': 'Exemplos rápidos',
'RAM': 'RAM',
'RAM Cache Keys': 'RAM Cache Keys',
'Ram Cleared': 'Ram Cleared',
'Ram Cleared': 'Ram Limpa',
'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...': 'Save model as...',
'Save model as...': 'Salvar modelo como...',
'Semantic': 'Semântico',
'Services': 'Serviço',
'Sign Up': 'Sign Up',
'Sign Up': 'Cadastrar',
'Sign up': 'Cadastrar',
'Size of cache:': 'Tamanho do cache:',
'state': 'estado',
'Statistics': 'Estatísticas',
@@ -204,6 +209,7 @@
'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('heartbeat'))
scheduler = Scheduler(db, heartbeat=configuration.get('scheduler.heartbeat'))
# -------------------------------------------------------------------------
# Define your tables below (or better in another model file) for example

View File

@@ -9,6 +9,9 @@
});
//--></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}}
@@ -271,3 +274,6 @@
{{pass}}
</div>
{{pass}}
</div>
</div>

View File

@@ -8,40 +8,44 @@
</div>
{{end}}
{{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 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}}
</div>
</div>
{{elif 'content' in globals():}}
{{=content}}
{{else:}}
{{=BEAUTIFY(response._vars)}}
{{pass}}

View File

@@ -1,28 +1,26 @@
{{extend 'layout.html'}}
<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 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>
{{block page_js}}
<script>
jQuery("#web2py_user_form input:visible:enabled:first").focus();

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)).xml()
html=BODY(BEAUTIFY(response._vars))
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-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">
<nav class="navbar navbar-light navbar-expand-md bg-faded 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">
{{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="navbar-nav ml-lg-auto">
<ul class="nav navbar-nav ml-auto w-100 justify-content-end">
<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,25 +86,19 @@
{{pass}}
</div>
</li>
</ul>
</ul>
{{pass}}
</div>
</nav>
<!-- Masthead ===================================== -->
<!-- Masthead ===================================== -->
{{block header}}
{{end}}
<!-- Main ========================================= -->
<!-- Begin page content -->
<div class="container-fluid main-container">
<div class="row">
<div class="col-md-12">
{{block center}}
{{include}}
{{end}}
{{=response.toolbar() if response.show_toolbar else ''}}
</div>
</div>
{{include}}
{{=response.toolbar() if response.show_toolbar else ''}}
</div>
{{block footer}} <!-- this is default footer -->

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,22 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

@@ -0,0 +1,41 @@
# 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

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

View File

@@ -0,0 +1,27 @@
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

View File

@@ -0,0 +1,41 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-waitress
docker build -t your_username/debian-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-waitress your_username/debian-web2py-waitress
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-waitress
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-waitress
docker login -u your_username
docker build -t your_username/debian-web2py-waitress .
docker push your_username/debian-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/debian-web2py-waitress .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-waitress your_username/debian-web2py-waitress
docker-compose up -d
docker-compose ps

View File

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

View File

@@ -0,0 +1,27 @@
FROM debian:latest
#LABEL your_label
RUN apt update && \
apt install -y python python-pip python-setuptools unzip wget && \
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

@@ -0,0 +1,41 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Debian/web2py-wsgiref
docker build -t your_username/debian-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-wsgiref your_username/debian-web2py-wsgiref
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Debian/web2py-wsgiref
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Debian/web2py-wsgiref
docker login -u your_username
docker build -t your_username/debian-web2py-wsgiref .
docker push your_username/debian-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/debian-web2py-wsgiref .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name debian-web2py-wsgiref your_username/debian-web2py-wsgiref
docker-compose up -d
docker-compose ps

View File

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

View File

@@ -0,0 +1,27 @@
FROM fedora:latest
#LABEL your_label
RUN dnf 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

@@ -0,0 +1,41 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/Fedora/web2py-eventlet
docker build -t your_username/fedora-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name fedora-web2py-eventlet your_username/fedora-web2py-eventlet
docker ps
docker volume ls
docker volume inspect applications
# Docker Compose
pip install docker-compose
cd /Docker/Fedora/web2py-eventlet
docker-compose up -d
docker-compose ps
docker volume ls
docker volume inspect root_applications
# Docker Cloud
cd /Docker/Fedora/web2py-eventlet
docker login -u your_username
docker build -t your_username/fedora-web2py-eventlet .
docker push your_username/fedora-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/fedora-web2py-eventlet .
docker run -d -v applications:/home/web2py/web2py/applications -p 8000:8000 --name fedora-web2py-eventlet your_username/fedora-web2py-eventlet
docker-compose up -d
docker-compose ps

View File

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

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