GIT control and symlinks deploying in GAE

38 views
Skip to first unread message

Jacinto Parga

unread,
Apr 29, 2020, 4:53:28 AM4/29/20
to py4web
Regarding the instructions to deploy in GAE with symlinks it works perfect.

# symlink the apps that you want to deploy to GAE, for example:
ln -s ../../apps/_default apps/_default

So in a pip installed py4web I have this struture that works to deploy in GAE. 
  1. I have created a directory according to py4web/deployment_tools/gae README.md, and called it "deploygae". 
  2. Created an application in py4web _dashboard, called testgae
  3. ln -s ../../apps/_testgae apps/_default
It works perfect and I can deploy py4web testgae in GAE. This is the dir tree:

.
├── apps
│   ├── _dashboard
│   │   ├── diff2kryten.py
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── static
│   │   ├── templates
│   │   ├── translations
│   │   └── utils.py
│   ├── _default
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── templates
│   ├── _documentation
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   └── static
│   ├── __init__.py
│   ├── _minimal
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   └── static
│   ├── __pycache__
│   │   └── __init__.cpython-37.pyc
│   ├── _scaffold
│   │   ├── common.py
│   │   ├── controllers.py
│   │   ├── databases
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── __pycache__
│   │   ├── README.md
│   │   ├── settings.py
│   │   ├── static
│   │   ├── tasks.py
│   │   ├── templates
│   │   └── translations
│   └── testgae
│       ├── common.py
│       ├── controllers.py
│       ├── databases
│       ├── __init__.py
│       ├── models.py
│       ├── __pycache__
│       ├── README.md
│       ├── settings.py
│       ├── static
│       ├── tasks.py
│       ├── templates
│       └── translations
├── deploygae
│   ├── apps
│   │   ├── _default -> ../../apps/testgae
│   │   ├── __init__.py
│   │   └── __pycache__
│   ├── app.yaml
│   ├── dispatch.yaml
│   ├── index.yaml
│   ├── lib
│   │   ├── bin
│   │   ├── py4web
│   │   └── py4web-1.20200415.2.dist-info
│   ├── main.py
│   ├── Makefile
│   ├── __pycache__
│   │   └── main.cpython-37.pyc
│   ├── README.md
│   └── requirements.txt
└── password.txt

But, I just wanted to do a git repository with deploygae folder. The reason is that I can make more differentes folders to deploy in GAE more different apps. 

The problem is that symlinks does not work in GIT with folders outside the project tree. The _default symlink is stored as a blob.

The solution I found is:
  1. I have created a directory according to py4web/deployment_tools/gae README.md, and called it "deploygae". 
  2. Created an application in py4web _dashboard, called testgae
  3. Move testgae folder from apps to deploygae/apps
  4. Rename testgae folder as _default
  5. Create a symplink in apps folder whith the name you want to give to your app in _dashboard form deploygae/apps/_default:  ln -s ../deploygae/apps/_default apps/testgae
Py4web _dashboard works wiht symlinks as they are in the same machine  wiht no problem, and we can make GIT control to deploygae folder with all the files included.

.
├── apps
│   ├── _dashboard
│   │   ├── diff2kryten.py
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── static
│   │   ├── templates
│   │   ├── translations
│   │   └── utils.py
│   ├── _default
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   └── templates
│   ├── _documentation
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   └── static
│   ├── __init__.py
│   ├── _minimal
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   └── static
│   ├── present
│   │   ├── common.py
│   │   ├── controllers.py
│   │   ├── databases
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── __pycache__
│   │   ├── README.md
│   │   ├── settings_private.py
│   │   ├── settings.py
│   │   ├── static
│   │   ├── tasks.py
│   │   ├── templates
│   │   └── translations
│   ├── testgae -> ../deploygae/apps/_default
│   ├── __pycache__
│   │   └── __init__.cpython-37.pyc
│   └── _scaffold
│       ├── common.py
│       ├── controllers.py
│       ├── databases
│       ├── __init__.py
│       ├── models.py
│       ├── __pycache__
│       ├── README.md
│       ├── settings.py
│       ├── static
│       ├── tasks.py
│       ├── templates
│       └── translations
├── deploygae
│   ├── apps
│   │   _default
│   │   │   ├── common.py
│   │   │   ├── controllers.py
│   │   │   ├── databases
│   │   │   ├── __init__.py
│   │   │   ├── models.py
│   │   │   ├── __pycache__
│   │   │   ├── README.md
│   │   │   ├── settings_private.py
│   │   │   ├── settings.py
│   │   │   ├── static
│   │   │   ├── tasks.py
│   │   │   ├── templates
│   │   │   └── translations
│   │   ├── __init__.py
│   │   └── __pycache__
│   ├── app.yaml
│   ├── index.yaml
│   ├── lib
│   │   ├── bin
│   │   ├── py4web
│   │   └── py4web-1.20200426.2-py3.7.egg-info
│   ├── main.py
│   ├── Makefile
│   ├── Makefile~
│   ├── README.md
│   └── requirements.txt
└── password.txt

Reply all
Reply to author
Forward
0 new messages