У меня было худшее время, когда сеть работала на моем домене с letsencrypt / nginix или letsencrypt / traefik. Я наконец-то настроил его.
Мне показалось, что Traefik имеет смысл установить, так как это было рекомендовано везде. Чтобы настроить его и работать с моим DNS, я использовал это руководство: https://medium.com/@containeroo / traefik-2-0- docker -a-simple-by-step-by-step-guide-e0be0c17cfa5
С этим руководством по умолчанию мне удалось запустить porttainer и traefik, хотя я не могу получить доступ к traefik, который должен быть на traefik.MYDOMAIN.com. Но porttainer работает на portainer.MYDOMAIN.com.
Вот docker -композиции для этих
traefik docker -композит
version: '3'
services:
traefik:
image: traefik:v2.0
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
environment:
- CF_API_EMAIL=mail@mail.mail
- CF_API_KEY=LOLKEY
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.DOMAIN.com`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=USER:PASSWORD"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.DOMAIN.COM`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.traefik-secure.tls.domains[0].main=DOMAIN.COM"
- "traefik.http.routers.traefik-secure.tls.domains[0].sans=*.DOMAIN.COM"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
Docker сочинять для Portainer
version: '3'
services:
portainer:
image: portainer/portainer:latest
container_name: portainer
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.entrypoints=http"
- "traefik.http.routers.portainer.rule=Host(`portainer.DOMAIN.COM`)"
- "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
- "traefik.http.routers.portainer-secure.entrypoints=https"
- "traefik.http.routers.portainer-secure.rule=Host(`portainerDOMAIN.COM`)"
- "traefik.http.routers.portainer-secure.tls=true"
- "traefik.http.routers.portainer-secure.tls.certresolver=http"
- "traefik.http.routers.portainer-secure.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.docker.network=proxy"
networks:
proxy:
external: true
Как я уже сказал, teaefik.DOMAIN.COM не работает, а porttainer работает. Я перепробовал кучу больше, но я не смог получить вики. js, или mediawiki, или пару других, настроенных и работающих ... Я установил привидение через интерфейс Porttainers, но не смог go создать поддомен, даже когда я скопировал все переменные окружения из Porttainer в Ghost через GUI. Так что нет go. Мой следующий шаг состоял в том, чтобы попробовать xwiki, смешав две предыдущие вещи с xwiki docker -compose
Итак, вот что:
version: '3'
services:
web:
image: "xwiki:lts-mysql-tomcat"
container_name: xwiki-mysql-tomcat-web
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.xwiki.entrypoints=http"
- "traefik.http.routers.xwiki.rule=Host(`xwiki.DOMAIN.COM`)"
- "traefik.http.middlewares.xwiki-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.xwiki.middlewares=xwiki-https-redirect"
- "traefik.http.routers.xwiki-secure.entrypoints=https"
- "traefik.http.routers.xwiki-secure.rule=Host(`xwiki.DOMAIN.COM`)"
- "traefik.http.routers.xwiki-secure.tls=true"
- "traefik.http.routers.xwiki-secure.tls.certresolver=http"
- "traefik.http.services.xwiki.loadbalancer.server.port=8080"
- "traefik.http.routers.xwiki-secure.service=xwiki"
- "traefik.docker.network=proxy"
depends_on:
- db
environment:
- DB_USER=xwiki
- DB_PASSWORD=PASSWORD
- DB_DATABASE=xwiki
- DB_HOST=xwiki-mysql-db
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
networks:
- proxy
db:
image: "mysql:5.7"
container_name: xwiki-mysql-db
volumes:
- ./xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf
- mysql-data:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
- MYSQL_ROOT_PASSWORD=xwiki
- MYSQL_USER=xwiki
- MYSQL_PASSWORD=PASSWORD
- MYSQL_DATABASE=xwiki
volumes:
mysql-data: {}
xwiki-data: {}
networks:
proxy:
external: true
Это началось !! Я был очень взволнован. Но тогда это не удалось с ошибкой 500. Вот эта ошибка: https://justpaste.it/3ixzf
По сути, я просто хотел бы использовать traefik в качестве шаблона для docker - составить множество приложений для тестирования, но это действительно трудно понять, какие переменные мне не хватает. Я потратил целых 12 часов, пытаясь понять все эти вещи, но есть так много разных руководств и противоречивых советов, и руководство traefik не помогло в моей ситуации ... я бы хотел любую помощь!
Слишком много информации, вот что я хочу / сделал / знаю:
Моя установка - обычное домашнее соединение rnet, сервер - Lenovo Yoga 710 i5. Я могу переадресовывать порты по мере необходимости или DMZ по мере необходимости (я знаю, что это не рекомендуется или не безопасно). У меня есть опция Ubuntu или windows 10 с включенным Hyper-V (если вы думаете, что это будет проще в windows, я могу установить это!). Прямо сейчас у меня есть Ubuntu 18.
Мой провайдер домена - это namecheap, который DNSed для cloudflare. Я ничего не знал о серверах и хостинге, пока не начал все эти вещи за несколько недель go.
Мне удалось после того, как здесь помогли получить безопасный nginx, работающий в соответствии с этим руководством и Я все еще был немного озадачен тем, как все прошло. и я не мог заставить субдомены работать идеально, поэтому я следовал этому руководству linuxserver.io, и оно работало до конца, а потом я сказал «но ... как мне добавить больше вещей» ??
Я знаю, что это включает в себя модифицированные docker -компоненты для моей собственной ситуации, но мне нужен общий шаблон, из которого можно работать (я рад разбивать вещи снова и снова, чтобы учиться), но нужно знать, что У меня есть правильный шаблон. К сожалению, существует миллиард шаблонов.
Так что я решил попробовать traefik, и вы видите результаты выше.
Поскольку я знаю, что моя проблема в основном связана с сетью, я думаю, что ' Я застреваю с командами -p ##: ##, особенно потому, что wikibase запускает 4 (!) отдельных контейнера, вики. js нужна БД, а xwiki выглядит менее сложным, но все еще не работает (как показывает ссылка выше) .
Мне кажется, мне нужно иметь приложение для работы с БД (возможно, mariaDB?, Которое хорошо работает с графикой p), которое работает ... как локально, и затем различные docker приложения используют эту БД. Поэтому я запускаю контейнер БД (или, может быть, просто sudo apt get install mariadb?) И понимаю, что docker -compose db: (бла-бла) должен устанавливать факторы среды, чтобы приложение могло получить к нему доступ.
Но тогда мешает ли traefik или nginx? Я запускаю их? Я понял, что traefik похож на "publi sh it local!" и nginix был гораздо более практичным, но ...