upd: +removed useless files +updated readme

This commit is contained in:
xdrm-brackets 2018-02-17 17:45:13 +01:00
parent 95fe1fe09b
commit 0df0260222
4 changed files with 13 additions and 155 deletions

View File

@ -1,78 +0,0 @@
IMAGE_NAME="alp-mdb"
CONTAINER_NAME="inst1"
LOG="/tmp/ptut.virtenv.log"
LOCK="/tmp/ptut.virtenv.lock"
image: build
@echo -n "> Build image..................";
@docker build --force-rm -t $(IMAGE_NAME) . >>$(LOG) 2>&1 && echo "done" || echo "error";
build: docker/main docker/include/*
@echo -n "> Build Dockerfile.............";
@cpp -o Dockerfile docker/main && echo "done" || echo "error";
clean:
@echo -n "> Stop container...............";
@docker stop $(CONTAINER_NAME) >/dev/null 2>&1 && echo "stopped" || echo "already"; true;
@echo -n "> Delete container.............";
@docker rm -f $(CONTAINER_NAME) >/dev/null 2>&1 && echo "deleted" || echo "already"; true;
@echo -n "> Delete image.................";
@docker rmi -f $(IMAGE_NAME) >/dev/null 2>&1 && echo "deleted" || echo "already"; true;
@echo -n "> Delete Dockerfile............";
@rm Dockerfile >/dev/null 2>&1 && echo "done" || echo "already"; true
@echo -n "> Delete log file..............";
@rm $(LOG) >/dev/null 2>&1 && echo "done" || echo "already"; true
@echo -n "> Delete lock file.............";
@rm $(LOCK) >/dev/null 2>&1 && echo "done" || echo "already"; true
run:
@echo ">>> Search running container";
@test ! -f $(LOCK) && echo -e "<<< nothing\n" || (echo -e "<<< found\n\nERR: You must run 'make clean' before running a new container"; exit 1);
@echo ">>> Build image";
@make image;
@echo -e "<<< built\n";
@echo ">>> Container launched";
@touch $(LOCK);
@docker run --name $(CONTAINER_NAME) $(IMAGE_NAME);
@echo -e "<<< stopped\n";
@echo ">>> clean installation" | tee -a $(LOG); \
make clean;
@echo "<<< cleaned";
kill:
@echo -n "Search running container.......";
@test -f $(LOCK) && echo "found" || (echo -e "nothing\n\nERR: You must run a container to kill it"; exit 1);
@echo -n "Kill container.................";
@docker exec -ti inst1 sh -c 'rm boot.lock' && echo "killed" || echo "error";
boot:
@touch $(LOG);
@while true; do \
echo ">>> pull from source" | tee -a $(LOG); \
git pull origin master >> $(LOG) 2>&1 && echo -e "<<< pulled\n" || echo -e "<<< error\n"; \
echo ">>> make image" | tee -a $(LOG); \
make image; \
echo -e ">>> made\n" | tee -a $(LOG); \
echo ">>> launch container" | tee -a $(LOG); \
touch $(LOCK); \
docker run --name $(CONTAINER_NAME) $(IMAGE_NAME) >> $(LOG) 2>&1; \
echo -e "<<< stopped\n" | tee -a $(LOG); \
echo ">>> clean installation" | tee -a $(LOG); \
make clean; \
echo -e "<<< cleaned\n"; \
sleep 2; \
done;
log:
@echo -n "> Checking log file.......";
@test -f $(LOG) && echo "found" || (echo "missing"; exit 1);
@echo -n "> Checking container......";
@test -f $(LOCK) && echo "running" || echo "not running";
@echo "====== LOG ======";
@tail -f $(LOG);
tty:
@echo -n "> Checking lock...........";
@test -f $(LOCK) && echo "found" || (echo "missing"; exit 1);
@echo "> Connecting tty.............";
@docker exec -ti $(CONTAINER_NAME) sh;

View File

@ -5,66 +5,25 @@
You need a consistent Linux System with the following packages :
- `docker`
- `make`
- `cpp` (C pre-processor)
- `docker-compose`
You need to add a local dns record in `/etc/hosts`:
```text
127.0.0.1 ptut.com
```
## Commands
In order for the environment to be launched, we need to run configuration commands, installation instructions, etc and store the final state in a **docker image**. Then we can launch several **containers** from that initial image.
The building process is automated with the *Makefile* and the `make` command.
---
### 1. Build the Dockerfile
**Launch the environment**
```bash
make build
docker-compose up -d
```
- the mounted files will match in the `./virtual` folder.
- the website will be accessible at 'ptut.com:8080'.
- Creates the *Dockerfile* using the *c pre-processor* to include the files in `docker/include` in `docker/main`. The final output is located at the root of the repository in `./Dockerfile`.
---
### 2. Create the docker image
**Stop the environment**
```bash
make image
```
- Creates the **docker image** from the Dockerfile. If `./Dockerfile` is missing, it will automatically launch `make build`.
---
### 3. Launch the container
```bash
make run
```
- Builds the image (*make image*)
- Launches the container (*make run*)
---
### 4. Properly kill a container
```bash
make kill
```
- Properly kills a running container
---
### 5. Launch the CI loop
```bash
make boot
```
- Launches an infinite loop that
1. Updates the git repository (*git pull*)
2. Builds the image (*make image*)
3. Launches the container (*make run*)
4. When the container stops, delete it and reloop
- to have a real time log, launch `make log`
- to connect to a tty launch `make tty`
docker-compose down
```

View File

@ -1,4 +0,0 @@
RUN apk add mariadb mariadb-client \ /* 1. install mariadb */
&& mysql_install_db --user=mysql \ /* 2. install database */
&& sh -c 'mysqld_safe& sleep 1' \ /* 3. Start mysql for password changing */
&& mysqladmin -u root password 'root' /* 4. set arbitrary root password */

View File

@ -1,19 +0,0 @@
/* 1. Base image */
FROM alpine
MAINTAINER xdrm-brackets <xdrm.brackets.dev@gmail.com>
/* 2. Update package manager */
RUN apk update
/************************************
************** MariaDB **************
************************************/
#include "./include/mariadb"
/************************************
********** Set Bootloader ***********
************************************/
COPY virtual/bootloader /bootloader
CMD export USER=ROOT; sh /bootloader