source sync
This commit is contained in:
parent
f5d33866cc
commit
428e5ad3f0
4 changed files with 82 additions and 11 deletions
76
docs/DEVELOPMENT.md
Normal file
76
docs/DEVELOPMENT.md
Normal file
|
@ -0,0 +1,76 @@
|
|||
# Development
|
||||
|
||||
## Quick start
|
||||
|
||||
* Clone [rodber/chevereto-free](https://github.com/rodber/chevereto-free)
|
||||
* Run [docker-compose up](#up)
|
||||
* [Sync code](#sync-code) to sync changes
|
||||
|
||||
## Reference
|
||||
|
||||
* `SOURCE` is the absolute path to the cloned chevereto project
|
||||
* You need to replace `SOURCE=~/git/rodber/chevereto-free` with your own path
|
||||
* `SOURCE` will be mounted at `/var/www/source/` inside the container
|
||||
* Chevereto will be available at [localhost:8910](http://localhost:8910)
|
||||
|
||||
✨ This dev setup mounts `SOURCE` to provide the application files to the container. We provide a sync system that copies these files on-the-fly to the actual application runner for better isolation.
|
||||
|
||||
## docker-compose
|
||||
|
||||
Compose file: [httpd-php-dev.yml](../httpd-php-dev.yml)
|
||||
|
||||
Alter `SOURCE` in the commands below to reflect your project path.
|
||||
|
||||
## Up
|
||||
|
||||
Run this command to spawn (start) Chevereto Installer.
|
||||
|
||||
```sh
|
||||
SOURCE=~/git/rodber/chevereto-free \
|
||||
docker-compose \
|
||||
-p chevereto-free-dev \
|
||||
-f httpd-php-dev.yml \
|
||||
up -d
|
||||
```
|
||||
|
||||
## Stop
|
||||
|
||||
Run this command to stop Chevereto Installer.
|
||||
|
||||
```sh
|
||||
SOURCE=~/git/rodber/chevereto-free \
|
||||
docker-compose \
|
||||
-p chevereto-free-dev \
|
||||
-f httpd-php-dev.yml \
|
||||
stop
|
||||
```
|
||||
|
||||
## Down (uninstall)
|
||||
|
||||
Run this command to down Chevereto (stop containers, remove networks and volumes created by it).
|
||||
|
||||
```sh
|
||||
SOURCE=~/git/rodber/chevereto-free \
|
||||
docker-compose \
|
||||
-p chevereto-free-dev \
|
||||
-f httpd-php-dev.yml \
|
||||
down --volumes
|
||||
```
|
||||
|
||||
## Sync code
|
||||
|
||||
Run this command to sync the application code with your working project.
|
||||
|
||||
```sh
|
||||
docker exec -it \
|
||||
chevereto-free-dev_app \
|
||||
bash /var/www/sync.sh
|
||||
```
|
||||
|
||||
This system will observe for changes in your working project filesystem and it will automatically sync the files inside the container.
|
||||
|
||||
**Note:** This command must keep running to provide the sync functionality. You should close it once you stop working with the source.
|
||||
|
||||
## Logs
|
||||
|
||||
`todo`
|
|
@ -25,7 +25,7 @@ services:
|
|||
- app:/var/www/html/
|
||||
- type: bind
|
||||
source: ${SOURCE}
|
||||
target: /var/www/chevereto
|
||||
target: /var/www/chevereto-free
|
||||
ports:
|
||||
- 8910:80
|
||||
restart: always
|
||||
|
|
|
@ -71,7 +71,6 @@ RUN set -eux; \
|
|||
|
||||
VOLUME /var/www/html
|
||||
VOLUME /var/www/html/images
|
||||
VOLUME /var/www/source
|
||||
|
||||
COPY . /var/www/html
|
||||
RUN rm /var/www/html/sync.sh
|
||||
|
|
14
sync.sh
14
sync.sh
|
@ -1,22 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
SOURCE=/var/www/source/
|
||||
INSTALLER=/var/www/installer/
|
||||
SOURCE=/var/www/chevereto-free/
|
||||
TARGET=/var/www/html/
|
||||
EXCLUDE="\.git|\.DS_Store|\/docs"
|
||||
mkdir -p $INSTALLER
|
||||
cp "${SOURCE}".gitignore "${INSTALLER}".gitignore
|
||||
cp "${SOURCE}".gitignore "${TARGET}".gitignore
|
||||
function sync() {
|
||||
rsync -r -I -og \
|
||||
--chown=www-data:www-data \
|
||||
--info=progress2 \
|
||||
--filter=':- .gitignore' \
|
||||
--exclude '.git' \
|
||||
--filter=':- .dockerignore' \
|
||||
--exclude '.git sync.sh' \
|
||||
--delete \
|
||||
$SOURCE $INSTALLER
|
||||
# php "${INSTALLER}"src/build.php
|
||||
# cp "${INSTALLER}"build/installer.php "${TARGET}"installer.php
|
||||
# chown www-data: $TARGET -R
|
||||
$SOURCE $TARGET
|
||||
}
|
||||
sync
|
||||
inotifywait \
|
||||
|
|
Loading…
Reference in a new issue