Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
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.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