Projekt

Obecné

Profil

« Předchozí | Další » 

Revize f9e48177

Přidáno uživatelem Tomáš Ballák před asi 4 roky(ů)

python works

Zobrazit rozdíly:

.docker-compose-dev.yml
1
version: "3.2"
2
services:
3
       php-fpm:
4
               build: ./build/php-fpm/dev/
5
               depends_on: 
6
                       - database
7
               networks:
8
                   - backend
9
               ports: 
10
                       - "9000:9000"
11
               volumes:
12
                       - ./website/:/var/www/symfony
13
                       - ./python-module:/var/python-module
14
               container_name: "heatmap_php_fpm"
15
               environment:
16
                       XDEBUG_CONFIG: remote_host=172.17.0.1 #your docker network i TODO:NOT WORKING
17
       nginx:
18
               build: './build/nginx'
19
               depends_on:
20
                       - php-fpm
21
                       - database
22
               networks:
23
                       - frontend
24
                       - backend
25
               ports:
26
                       - "80:80"
27
               volumes:
28
                       - ./logs/nginx:/var/log/nginx
29
                       - ./website/:/var/www/symfony
30
               container_name: "heatmap_nginx"
31
       database:
32
               image: 'mongo'
33
               container_name: "heatmap_mongodb"
34
               restart: always
35
               networks:
36
                       - backend
37
               ports:
38
                       - '27017-27019:27017-27019'
39
              
40
               environment:
41
                       MONGO_INITDB_DATABASE: open-data-db
42
                       MONGO_INITDB_ROOT_USERNAME: root
43
                       MONGO_INITDB_ROOT_PASSWORD: root
44
               volumes:
45
                        - data-db:/data/db
46
                        - ./dev-dump:/dev-dump
47
                        
48
volumes:
49
    data-db:
50
    
51
networks:
52
       frontend:
53
       backend:
.gitignore
3 3
.idea
4 4
dev-dump
5 5
*.lock
6
.vscode-server
README.md
24 24
* First you need to set python interpeter to the containers by **following these steps**
25 25
<div style="display: flex; flex-direction: row; justify-content: space-around;flex-wrap: wrap">
26 26
  <div style="height: 450px; display: flex; justify-content: space-between;flex-direction: column;">
27
  <img src="./guide/1.png" width="500px" style="display: block"/>
27
  <img src="./doc/images/1.png" width="500px" style="display: block"/>
28 28
  <p style="background: red">A. Enter Settings (File/Preferences/Settings)</p>
29 29
  </div>
30 30
  <div style="height: 450px; display: flex; justify-content: space-between; flex-direction: column;">
31
  <img src="./guide/2.png" width="500px" height="360px" style="display: block"/>
31
  <img src="./doc/images/2.png" width="500px" height="360px" style="display: block"/>
32 32
  <p style="background: red">B. In the left panel choose <b>Docker</b> and in <b>Image Name</b> choose <b>heatmap_py-charm</b></p>
33 33
  </div>
34 34
  <div style="height: 450px; display: flex; justify-content: space-between;flex-direction: column;">
35
  <img src="./guide/3.png" width="500px" style="display: block"/>
35
  <img src="./doc/images/3.png" width="500px" style="display: block"/>
36 36
  <p style="background: red">C. When setup is ok you will see all packages from requirements on this screen</b></p>
37 37
  </div>
38 38
</div>
build/nginx/Dockerfile
1
FROM nginx:alpine
2
COPY nginx.conf /etc/nginx
3
COPY conf.d /etc/nginx/conf.d
4
ADD ./sites /etc/nginx/sites-available
5
WORKDIR /var/www/
6
CMD ["nginx"]
build/nginx/conf.d/default.conf
1
upstream php-upstream {
2
    server php-fpm:9000;
3
}
build/nginx/nginx.conf
1
user  nginx;
2
worker_processes  4;
3
daemon off;
4

  
5
error_log  /var/log/nginx/error.log warn;
6
pid        /var/run/nginx.pid;
7

  
8
events {
9
    worker_connections  1024;
10
}
11

  
12

  
13
http {
14
    include       /etc/nginx/mime.types;
15
    default_type  application/octet-stream;
16
    access_log  /var/log/nginx/access.log;
17
    sendfile        on;
18
    keepalive_timeout  65;
19

  
20
    include /etc/nginx/conf.d/*.conf;
21
    include /etc/nginx/sites-available/*.conf;
22
}
build/nginx/sites/default.conf
1
server {
2
    listen 80 default_server;
3
    listen [::]:80 default_server ipv6only=on;
4

  
5
    server_name localhost;
6
    root /var/www/symfony/public;
7
    index index.php index.html index.htm;
8

  
9
    location / {
10
         try_files $uri $uri/ /index.php$is_args$args;
11
    }
12

  
13
    location ~ \.php$ {
14
        try_files $uri /index.php =404;
15
        fastcgi_pass php-upstream;
16
        fastcgi_index index.php;
17
        fastcgi_buffers 16 16k;
18
        fastcgi_buffer_size 32k;
19
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
20
        fastcgi_read_timeout 600;
21
        include fastcgi_params;
22
    }
23

  
24
    location ~ /\.ht {
25
        deny all;
26
    }
27
}
build/php-fpm/Dockerfile
1
FROM php:7.4-fpm-alpine
2
RUN apk update; \
3
	apk upgrade; \
4
	apk add autoconf openssl-dev g++ make && \
5
    echo "**** install MongoDB ****\n" && \
6
	pecl install mongodb && \
7
	docker-php-ext-enable mongodb; \
8
	apk del --purge autoconf openssl-dev g++ make;
9
RUN echo "**** install Python ****\n" && \
10
    apk add --no-cache python3 && \
11
    if [ ! -e /usr/bin/python ]; then ln -sf python3 /usr/bin/python ; fi && \
12
    \
13
    echo "**** install pip ****\n" && \
14
    python3 -m ensurepip && \
15
    rm -r /usr/lib/python*/ensurepip && \
16
    pip3 install --no-cache --upgrade pip setuptools wheel && \
17
    if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi
18
RUN echo "**** install PHP Composer ****\n" && \
19
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
build/php-fpm/dev/Dockerfile
1
#DEV ONLY DOCKERFILE
2
FROM php:7.4-fpm-alpine
3
RUN apk update; \
4
	apk upgrade; \
5
	apk add autoconf openssl-dev g++ make && \
6
	pecl install mongodb && \
7
	docker-php-ext-enable mongodb; \
8
	apk del --purge autoconf openssl-dev g++ make;
9

  
10
RUN echo "**** install Python ****" && \
11
    apk add --no-cache python3 && \
12
    if [ ! -e /usr/bin/python ]; then ln -sf python3 /usr/bin/python ; fi && \
13
    \
14
    echo "**** install pip ****" && \
15
    python3 -m ensurepip && \
16
    rm -r /usr/lib/python*/ensurepip && \
17
    pip3 install --no-cache --upgrade pip setuptools wheel && \
18
    if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi
19
RUN echo "**** install PHP Composer ****\n" && \
20
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
21
COPY requirements.txt /requirements.txt
22
RUN pip install -r /requirements.txt
build/php-fpm/dev/xdebug.ini
1
[XDebug]
2
xdebug.remote_enable=1
3
xdebug.remote_autostart=1
4
xdebug.remote_handler=dbgp
5
xdebug.remote_port=9000
6
xdebug.remote_connect_back=0
docker-compose-dev.yml
1
version: "3.2"
2
services:
3
       php-fpm:
4
               volumes:
5
                        - vscode-extensions-php:/var/www/symgfony/.vscode-server/extensions
6
       crawler:
7
               build: 
8
                        context: ./modules/crawler
9
                        dockerfile: ../../docker/crawler/Dockerfile
10
               volumes: 
11
                        - vscode-extensions-crawler:/src/.vscode-server/extensions
12
       database:
13
               volumes:
14
                        - data-db:/data/db
15
                        - ./dev-dump:/dev-dump
16
volumes:
17
    data-db:
18
    vscode-extensions-php:
19
    vscode-extensions-crawler:
docker-compose-prod.yml
1
version: "3.2"
2
services:
3
       database:
4
               volumes:
5
                        - /database:/data/db
docker-compose.yml
1 1
version: "3.2"
2 2
services:
3
       crawler:
4
                build: './docker/crawler'
5
                depends_on: 
6
                        - database
7
                networks:
8
                        - backend
9
                volumes:
10
                        - ./modules/crawler/:/src
11
                        - ./logs/crawler:/log/
12
                container_name: "heatmap_crawler"
13
                
3 14
       php-fpm:
4
               build: './build/php-fpm'
15
               build: './docker/php-fpm'
5 16
               depends_on: 
6 17
                       - database
7 18
               networks:
......
10 21
                       - "9000:9000"
11 22
               volumes:
12 23
                       - ./website/:/var/www/symfony
13
                       - ./python-module:/var/python-module
14 24

  
15 25
               container_name: "heatmap_php_fpm"
16 26
       nginx:
17
               build: './build/nginx'
27
               build: './docker/nginx'
18 28
               depends_on:
19 29
                       - php-fpm
20 30
                       - database
31
                       - crawler
21 32
               networks:
22 33
                       - frontend
23 34
                       - backend
......
39 50
                       MONGO_INITDB_DATABASE: open-data-db
40 51
                       MONGO_INITDB_ROOT_USERNAME: root
41 52
                       MONGO_INITDB_ROOT_PASSWORD: root
42
               volumes:
43
                        - /database:/data/db
44 53
networks:
45 54
       frontend:
46 55
       backend:
docker/crawler/Dockerfile
1
FROM python:3-slim
2

  
3
RUN apt-get update && apt-get install -y cron
4
RUN yes | apt-get install software-properties-common
5
RUN apt-get install dialog apt-utils -y
6
RUN pip install -q --no-cache-dir --upgrade pip
7
ADD crontab /etc/cron.d/simple-cron
8
RUN chmod 0644 /etc/cron.d/simple-cron
9
RUN crontab /etc/cron.d/simple-cron
10

  
11
ADD requirements.txt /requirements.txt
12
RUN pip install -r /requirements.txt
13
CMD cron -f
docker/nginx/Dockerfile
1
FROM nginx:alpine
2
COPY nginx.conf /etc/nginx
3
COPY conf.d /etc/nginx/conf.d
4
ADD ./sites /etc/nginx/sites-available
5
WORKDIR /var/www/
6
CMD ["nginx"]
docker/nginx/conf.d/default.conf
1
upstream php-upstream {
2
    server php-fpm:9000;
3
}
docker/nginx/nginx.conf
1
user  nginx;
2
worker_processes  4;
3
daemon off;
4

  
5
error_log  /var/log/nginx/error.log warn;
6
pid        /var/run/nginx.pid;
7

  
8
events {
9
    worker_connections  1024;
10
}
11

  
12

  
13
http {
14
    include       /etc/nginx/mime.types;
15
    default_type  application/octet-stream;
16
    access_log  /var/log/nginx/access.log;
17
    sendfile        on;
18
    keepalive_timeout  65;
19

  
20
    include /etc/nginx/conf.d/*.conf;
21
    include /etc/nginx/sites-available/*.conf;
22
}
docker/nginx/sites/default.conf
1
server {
2
    listen 80 default_server;
3
    listen [::]:80 default_server ipv6only=on;
4

  
5
    server_name localhost;
6
    root /var/www/symfony/public;
7
    index index.php index.html index.htm;
8

  
9
    location / {
10
         try_files $uri $uri/ /index.php$is_args$args;
11
    }
12

  
13
    location ~ \.php$ {
14
        try_files $uri /index.php =404;
15
        fastcgi_pass php-upstream;
16
        fastcgi_index index.php;
17
        fastcgi_buffers 16 16k;
18
        fastcgi_buffer_size 32k;
19
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
20
        fastcgi_read_timeout 600;
21
        include fastcgi_params;
22
    }
23

  
24
    location ~ /\.ht {
25
        deny all;
26
    }
27
}
docker/php-fpm/Dockerfile
1
FROM php:7.4-fpm-alpine
2
RUN apk update; \
3
	apk upgrade; \
4
	apk add autoconf openssl-dev g++ make && \
5
    echo "**** install MongoDB ****\n" && \
6
	pecl install mongodb && \
7
	docker-php-ext-enable mongodb; \
8
	apk del --purge autoconf openssl-dev g++ make;
9
RUN echo "**** install Python ****\n" && \
10
    apk add --no-cache python3 && \
11
    if [ ! -e /usr/bin/python ]; then ln -sf python3 /usr/bin/python ; fi && \
12
    \
13
    echo "**** install pip ****\n" && \
14
    python3 -m ensurepip && \
15
    rm -r /usr/lib/python*/ensurepip && \
16
    pip3 install --no-cache --upgrade pip setuptools wheel && \
17
    if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi
18
RUN echo "**** install PHP Composer ****\n" && \
19
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
docker/php-fpm/dev/Dockerfile
1
#DEV ONLY DOCKERFILE
2
FROM php:7.4-fpm-alpine
3
RUN apk update; \
4
	apk upgrade; \
5
	apk add autoconf openssl-dev g++ make && \
6
	pecl install mongodb && \
7
	docker-php-ext-enable mongodb; \
8
	apk del --purge autoconf openssl-dev g++ make;
9

  
10
RUN echo "**** install Python ****" && \
11
    apk add --no-cache python3 && \
12
    if [ ! -e /usr/bin/python ]; then ln -sf python3 /usr/bin/python ; fi && \
13
    \
14
    echo "**** install pip ****" && \
15
    python3 -m ensurepip && \
16
    rm -r /usr/lib/python*/ensurepip && \
17
    pip3 install --no-cache --upgrade pip setuptools wheel && \
18
    if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi
19
RUN echo "**** install PHP Composer ****\n" && \
20
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
21
COPY requirements.txt /requirements.txt
22
RUN pip install -r /requirements.txt
docker/php-fpm/dev/xdebug.ini
1
[XDebug]
2
xdebug.remote_enable=1
3
xdebug.remote_autostart=1
4
xdebug.remote_handler=dbgp
5
xdebug.remote_port=9000
6
xdebug.remote_connect_back=0
modules/crawler/.devcontainer/devcontainer.json
1
{
2
    "forwardPorts": [8000],
3
    "extensions": [
4
        "vscode-icons-team.vscode-icons",
5
        "felixfbecker.php-intellisense"
6
    ],
7
    "workspaceFolder": "/src",
8
    "service": "crawler",
9
    "shutdownAction": "stopCompose",
10
    "dockerComposeFile": ["../../../docker-compose.yml", "../../../docker-compose-dev.yml"],
11
    "mounts":["source=vscode-extensions-php,target=/src/.vscode-server/extensions,type=volume"]
12
}
modules/crawler/crontab
1
0 1 * * * echo test
2
# Mandatory blank line
modules/crawler/python.code-workspace
1
{
2
	"folders": [
3
		{
4
			"path": "."
5
		}
6
	],
7
	"settings": {
8
		"php.suggest.basic":false,
9
		"files.autoSave": "afterDelay",
10
		"python.linting.pylintEnabled": true,
11
		"python.linting.enabled": true,
12
		"python.linting.pylintPath": "pylint",
13
		"python.pythonPath": "/usr/local/bin/python",
14
		"python.formatting.provider": "yapf"
15
	},
16
	"extensions": {
17
		"recommendations": [
18
			"vscode-icons-team.vscode-icons",
19
			"ms-python.python",
20
			"njpwerner.autodocstring",
21
			"magicstack.magicpython",
22
			"ms-vscode-remote.remote-containers"
23
		]
24
	}
25
}
modules/crawler/requirements.txt
1
emoji===0.5.4
2
pylint===2.4.4
3
yapf===0.30.0
modules/crawler/test.py
1
import emoji
2

  
3
print(emoji.emojize("Python is :thumbs_up:"))
4
print("test")
python-module/.devcontainer/devcontainer.json
1
{
2
    "forwardPorts": [8000],
3
    "extensions": [
4
        "vscode-icons-team.vscode-icons",
5
        "felixfbecker.php-intellisense"
6
    ],
7
    "workspaceFolder": "/var/www/symfony",
8
    "build": {
9
        "context": ".",
10
        "dockerfile": "../../build/php-fpm/dev/Dockerfile"
11
    }
12
}
python-module/python.code-workspace
1
{
2
	"folders": [
3
		{
4
			"path": "."
5
		}
6
	],
7
	"settings": {
8
		"php.suggest.basic":false,
9
		"files.autoSave": "afterDelay",
10
		"python.linting.enabled": true,
11
		"python.linting.lintOnSave": true
12
	},
13
	"extensions": {
14
		"recommendations": [
15
			"vscode-icons-team.vscode-icons",
16
			"ms-python.python",
17
			"ms-vscode-remote.remote-containers"
18
		]
19
	}
20
}
python-module/requirements.txt
1
emoji===0.5.4
2
pylint===2.4.4
python-module/test.py
1
import emoji
2
print(emoji.emojize('Python is :thumbs_up:'))
scripts/build.sh
1 1
#!/bin/bash
2
#Build development environment
3
docker-compose down
4
docker-compose up --build -d
5
docker-compose exec -T php-fpm composer install --no-interaction --working-dir=/var/www/symfony --no-dev
6
docker-compose exec -T php-fpm pip install -r /var/python-module/requirements.txt
2
docker-compose up -f docker-compose.yml -f docker-compose-prod.yml --build -d
3
docker-compose exec -T php-fpm composer install --no-interaction --working-dir=/var/www/symfony --no-dev
scripts/dev/build.bat
1
docker-compose -f .docker-compose-dev.yml up --build -d
1
docker-compose -f docker-compose.yml -f docker-compose-dev.yml up --build -d
2 2
docker-compose exec php-fpm composer config extra.symfony.allow-contrib true --no-interaction --working-dir=/var/www/symfony
3 3
docker-compose exec php-fpm composer install --no-interaction --working-dir=/var/www/symfony
4 4
docker-compose exec php-fpm composer update --no-interaction --working-dir=/var/www/symfony
5

  
scripts/dev/build.sh
1 1
#!/bin/bash
2 2
#Build development environment
3
docker-compose -f .docker-compose-dev.yml up --build -d
3
docker-compose -f docker-compose.yml -f docker-compose-dev.yml up --build -d
4 4

  
5 5
cat << "EOF"
6 6
 ______  ______  __    __  ______ ______  ______  ______  ______       __  __   __  ______  ______ ______  __      __        
......
9 9
 \ \_____\ \_____\ \_\ \ \_\ \_\  \ \_____\/\_____\ \_____\ \_\ \_\    \ \_\ \_\\"\_\/\_____\ \ \_\\ \_\ \_\ \_____\ \_____\ 
10 10
  \/_____/\/_____/\/_/  \/_/\/_/   \/_____/\/_____/\/_____/\/_/ /_/     \/_/\/_/ \/_/\/_____/  \/_/ \/_/\/_/\/_____/\/_____/                                                                                                                                                                                                                                                                                                                                                                                                                                      
11 11
EOF
12
docker-compose exec php-fpm composer update --no-interaction --working-dir=/var/www/symfony
12 13
docker-compose exec php-fpm composer install --no-interaction --working-dir=/var/www/symfony
13
cat << "EOF"
14
 ______  __   ______     __   __   __   ______   ______  ______   __       __        
15
/\  == \/\ \ /\  == \   /\ \ /\ "-.\ \ /\  ___\ /\__  _\/\  __ \ /\ \     /\ \       
16
\ \  _-/\ \ \\ \  _-/   \ \ \\ \ \-.  \\ \___  \\/_/\ \/\ \  __ \\ \ \____\ \ \____  
17
 \ \_\   \ \_\\ \_\      \ \_\\ \_\\"\_\\/\_____\  \ \_\ \ \_\ \_\\ \_____\\ \_____\ 
18
  \/_/    \/_/ \/_/       \/_/ \/_/ \/_/ \/_____/   \/_/  \/_/\/_/ \/_____/ \/_____/                                                                                                                                                                                     
19
EOF
20
docker-compose exec php-fpm pip install -r /var/python-module/requirements.txt
scripts/dev/pip.bat
1
docker-compose exec -T php-fpm pip install -r /var/python/requirements.txt
1
docker-compose exec -T crawler pip install -r /var/python/requirements.txt
scripts/pip.sh
1
#install requirements pips.sh install -r /var/python/requirements.txt
2
docker-compose exec -T php-fpm pip $@
1
#install requirements pip.sh install -r /var/python/requirements.txt
2
docker-compose exec -T crawler pip $@

Také k dispozici: Unified diff