version: '3'
services:
traefik:
image: traefik:v1.7.12
container_name: traefik
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
- ./rules.toml:/rules.toml
- ./acme.json:/acme.json
networks:
default:
external:
name: traefik
[backends]
[backends.traefik]
[backends.traefik.servers.server1]
url = "http://127.0.0.1:8080"
[frontends]
[frontends.traefik]
backend = "traefik"
[frontends.traefik.routes.test]
rule = "Host:traefik.localhost"
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
[docker]
exposedbydefault = false
network = "traefik"
[api]
[api.statistics]
[acme]
email = "myemail@gmail.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
[file]
filename = "rules.toml"
watch = true
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[docker]
exposedbydefault = false
network = "traefik"
[api]
[api.statistics]
[file]
filename = "rules.toml"
watch = true
docker network create traefik; docker-compose up -d
и больше не требует никакой настройки или обслуживания. После этого для того чтобы захостить любой контейнер, достаточно добавить в docker-compose.yml
проекта:networks:
traefik:
external: true
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:myhostname.mydomain"
- "traefik.port=8000"
INPUT_FILENAME = 'file1'
BLACKLIST_FILENAME = 'file2'
OUTPUT_FILENAME = 'file3'
with open(BLACKLIST_FILENAME) as f:
blacklist = [line.rstrip('\n') for line in f]
prev_line = None
with open(OUTPUT_FILENAME, 'w') as output_file:
with open(INPUT_FILENAME) as input_file:
for line in input_file:
if line.rstrip('\n') in blacklist:
prev_line = None
else:
if prev_line is not None:
output_file.write(prev_line)
prev_line = line
if prev_line is not None:
output_file.write(prev_line)
for key, value in request.META.items():
if key.startswith('HTTP_'):
print('***', key, ':', value)
from ftplib import FTP
class MyFTP(FTP):
def makepasv(self):
__, port = super().makepasv()
return self.host, port
ftp = MyFTP()
...
Сервер отправил пассивный ответ с неопределенным адресом. Использую существующий адрес
может ли быть проблема в том что сервер дает мне рабочий порт для передачи данных, а код использует порт указанный мной в переменной port
у нас рабочие порты от 30000 до 65000
но как я знаю, в целях защиты, команды которые выводят список файлов и т.д сервер не принимает.