add_docker

This commit is contained in:
sugizo
2018-02-05 07:06:40 +07:00
parent 623f3b9947
commit a3df59fceb
115 changed files with 3128 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# Start Service
systemctl start docker
# Docker
cd /Docker/App/web2py-rocket-nginx
chmod 775 run.sh
./run.sh
# Docker Compose
pip install docker-compose
cd /Docker/App/web2py-rocket-nginx
docker-compose up -d
docker-compose ps
docker network ls
docker network inspect root_default
docker volume ls
docker volume inspect root_applications
# Docker Stack
docker swarm init --advertise-addr $(hostname -i)
docker stack deploy -c docker-compose.yml web2py-rocket-nginx
docker stack ls
docker stack ps web2py-rocket-nginx
docker stack services web2py-rocket-nginx
# 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 > run.sh
EOF
cat run.sh
cat << EOF > w2p.conf
EOF
cat w2p.conf
cat << EOF > web2py-nginx
EOF
cat web2py-nginx
cat << EOF > web2py-rocket
EOF
cat web2py-rocket
chmod 755 run.sh
./run.sh
docker-compose up -d
docker-compose ps
+34
View File
@@ -0,0 +1,34 @@
version: '3.1'
services:
web2py-rocket:
build:
context: .
dockerfile: web2py-rocket
container_name: web2py-rocket
ports:
- "8000:8000"
networks:
web2py-net:
ipv4_address: 172.25.0.22
volumes:
- applications:/home/web2py/web2py/applications
web2py-nginx:
build:
context: .
dockerfile: web2py-nginx
container_name: web2py-nginx
networks:
web2py-net:
ipv4_address: 172.25.0.23
networks:
web2py-net:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/16
volumes:
applications:
+34
View File
@@ -0,0 +1,34 @@
docker rm $(docker stop $(docker ps -a -q --filter ancestor=web2py-rocket --format="{{.ID}}"))
docker rm $(docker stop $(docker ps -a -q --filter ancestor=web2py-nginx --format="{{.ID}}"))
docker network rm web2py-net
#docker network create web2py-net
docker network create --subnet=172.25.0.0/16 web2py-net
docker build -t web2py-rocket -f web2py-rocket .
docker build -t web2py-nginx -f web2py-nginx .
docker run -d --net web2py-net -v applications:/home/web2py/web2py/applications -p 8000:8000 --name web2py-rocket --ip 172.25.0.22 web2py-rocket
# docker exec -it web2py-rocket bash
sleep 2
ping -c1 -n 172.25.0.22
docker run --net web2py-net busybox ping -c1 -n web2py-rocket
echo "------------------------------------------------------------------"
curl -I 172.25.0.22:8000
docker run -d --net web2py-net --name web2py-nginx --ip 172.25.0.23 web2py-nginx
# docker exec -it web2py-nginx bash
sleep 2
ping -c1 -n 172.25.0.23
docker run --net web2py-net busybox ping -c1 -n web2py-nginx
echo "------------------------------------------------------------------"
curl -I 172.25.0.23
docker network ls
docker network inspect web2py-net
docker volume ls
docker volume inspect applications
docker ps -a
docker ps
+20
View File
@@ -0,0 +1,20 @@
upstream gunicorn {
#server 172.25.0.22:8000 fail_timeout=0;
server web2py-rocket:8000 fail_timeout=0;
}
server {
#listen 172.25.0.23:80 default_server;
listen web2py-nginx:80 default_server;
location / {
try_files $uri @proxy_to_gunicorn;
}
location @proxy_to_gunicorn {
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://gunicorn;
}
}
@@ -0,0 +1,10 @@
FROM nginx:latest
COPY ./w2p.conf /etc/nginx/conf.d/
RUN apt update
RUN apt-get install curl -y
EXPOSE 80
CMD nginx -g "daemon off;"
@@ -0,0 +1,25 @@
FROM alpine:latest
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