=====python=====
====Запуск скрипта из файла====
Dockerfile:
FROM python:3-alpine
WORKDIR /usr/src/app
Собираем образ
docker build -t project .
Исполняем скрипт
docker run -it --rm --name python -v ${PWD}:/usr/src/app project python test.py
скрипт python test.py
print('hello')
----
====Запуск скрипта из docker-compose====
docker-compose.yaml
version: '3.1'
services:
python:
build: .
volumes:
- D:\docker\python\pars\lesson8:/usr/src/app
container_name: python
depends_on:
- db
db:
image: postgres
environment:
POSTGRES_PASSWORD: 2619192
ports:
- 5432:5432
adminer:
image: adminer
ports:
- 8080:8080
pgadmin-compose:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: "anchikin@mail.ru"
PGADMIN_DEFAULT_PASSWORD: "2619192"
ports:
- "3003:80"
depends_on:
- db
Dockerfile
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install peewee
RUN pip install postgres
COPY . .
CMD [ "python", "./app.py" ]
WORKDIR /usr/src/app
скрипт python
import csv
from peewee import *
#from peewee import PostgresqlDatabase
db = PostgresqlDatabase(database='test', user='postgres', password='2619192', host='db')
class Coin(Model):
name = CharField()
url = TextField()
price = CharField()
class Meta:
database = db
def main():
db.connect()
db.create_tables([Coin])
with open('cmc.csv') as f:
order = ['name', 'url', 'price']
reader = csv.DictReader(f, fieldnames=order)
coins = list(reader)
# for row in coins:
# coin = Coin(name=row['name'], url=row['url'], price=row['price'])
# coin.save()
with db.atomic():
# for row in coins:
# Coin.create(**row)
for index in range(0, len(coins), 100):
Coin.insert_many(coins[index:index+100]).execute()
if __name__ == '__main__':
main()
file для парсинга
Bitcoin,https://coinmarketcap.com/currencies/bitcoin/,"$6,061.07"
Ethereum,https://coinmarketcap.com/currencies/ethereum/,$128.59
XRP,https://coinmarketcap.com/currencies/xrp/,$0.154285
Tether,https://coinmarketcap.com/currencies/tether/,$1.00