add docker container
This commit is contained in:
parent
bee1b53e41
commit
dd771f0ee2
6 changed files with 116 additions and 21 deletions
|
@ -5,11 +5,10 @@ mastodon_host: mastodon.example.com
|
||||||
#Use HTTP only for Vagrant testing or for reverse proxy purposes.
|
#Use HTTP only for Vagrant testing or for reverse proxy purposes.
|
||||||
use_http: true
|
use_http: true
|
||||||
ansible_python_interpreter: "/usr/bin/python2"
|
ansible_python_interpreter: "/usr/bin/python2"
|
||||||
docker_compose_version: "1.16.1"
|
|
||||||
docker_compose_hash: "1804b0ce6596efe707b9cab05d74b161833ed503f0535a937dd5d17bea8fc50a"
|
|
||||||
mastodon_docker_image: "moritzheiber/mastodon-docker"
|
mastodon_docker_image: "moritzheiber/mastodon-docker"
|
||||||
mastodon_docker_network: "mastodon_network"
|
mastodon_docker_network: "mastodon_network"
|
||||||
|
|
||||||
|
docker_command: podman
|
||||||
install_python_packages:
|
install_python_packages:
|
||||||
- package: "docker"
|
- package: "docker"
|
||||||
|
|
||||||
|
@ -17,13 +16,15 @@ uninstall_python_packages:
|
||||||
- package: "docker-py"
|
- package: "docker-py"
|
||||||
|
|
||||||
install_packages:
|
install_packages:
|
||||||
- package: "docker-ce"
|
- package: "podman"
|
||||||
- package: "python-pip-whl"
|
- package: "python-pip-whl"
|
||||||
- package: "python-setuptools"
|
- package: "python-setuptools"
|
||||||
|
|
||||||
uninstall_packages:
|
uninstall_packages:
|
||||||
- package: "docker-engine"
|
- package: "docker-engine"
|
||||||
- package: "docker"
|
- package: "docker"
|
||||||
|
- package: "docker-ce"
|
||||||
|
- package: "docker-ce-cli"
|
||||||
- package: "dockerio"
|
- package: "dockerio"
|
||||||
|
|
||||||
run_preflight_checks: "true"
|
run_preflight_checks: "true"
|
||||||
|
|
|
@ -2,4 +2,8 @@
|
||||||
- name: Bootstrapping
|
- name: Bootstrapping
|
||||||
import_tasks: docker/init.yml
|
import_tasks: docker/init.yml
|
||||||
|
|
||||||
|
- import_tasks: ubuntu.yml
|
||||||
|
when: ansible_distribution == 'Ubuntu'
|
||||||
|
|
||||||
- import_tasks: docker/core.yml
|
- import_tasks: docker/core.yml
|
||||||
|
- import_tasks: docker/docker.yml
|
||||||
|
|
|
@ -1,16 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: ubuntu.yml
|
|
||||||
when: ansible_facts['distribution'] == 'Ubuntu'
|
|
||||||
|
|
||||||
- name: Install docker-compose
|
|
||||||
get_url:
|
|
||||||
url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64"
|
|
||||||
dest: "/usr/bin/docker-compose"
|
|
||||||
sha256sum: "{{ docker_compose_hash }}"
|
|
||||||
mode: 0755
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Install Docker packages
|
- name: Install Docker packages
|
||||||
package:
|
package:
|
||||||
name: "{{ item.package }}"
|
name: "{{ item.package }}"
|
||||||
|
@ -31,18 +20,13 @@
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ uninstall_python_packages }}"
|
with_items: "{{ uninstall_python_packages }}"
|
||||||
|
|
||||||
- name: Install docker-compose Python
|
|
||||||
pip:
|
|
||||||
name: docker-compose
|
|
||||||
#version: 1.17.0rc1
|
|
||||||
|
|
||||||
- name: Check for existing network
|
- name: Check for existing network
|
||||||
raw: "docker network inspect {{ mastodon_docker_network }}"
|
raw: "{{ docker_command }} network inspect {{ mastodon_docker_network }}"
|
||||||
register: docker_network
|
register: docker_network
|
||||||
ignore_errors: True
|
ignore_errors: True
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Create main docker network
|
- name: Create main docker network
|
||||||
raw: "docker network create -d bridge {{ mastodon_docker_network }}"
|
raw: "{{ docker_command }} network create -d bridge {{ mastodon_docker_network }}"
|
||||||
when: docker_network is failed
|
when: docker_network is failed
|
||||||
become: true
|
become: true
|
||||||
|
|
100
tasks/docker/docker.yml
Normal file
100
tasks/docker/docker.yml
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
---
|
||||||
|
- docker_service:
|
||||||
|
project_name: redis
|
||||||
|
definition:
|
||||||
|
version: "2.3"
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:4.0-alpine
|
||||||
|
networks:
|
||||||
|
- "{{ mastodon_docker_network }}"
|
||||||
|
restart: on-failure
|
||||||
|
networks:
|
||||||
|
"{{ mastodon_docker_network }}":
|
||||||
|
external: true
|
||||||
|
|
||||||
|
- docker_service:
|
||||||
|
project_name: db
|
||||||
|
definition:
|
||||||
|
version: "2.3"
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgresql:9.6-alpine
|
||||||
|
networks:
|
||||||
|
- "{{ mastodon_docker_network }}"
|
||||||
|
restart: on-failure
|
||||||
|
env_file: /mastodon/.env
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER: "{{ db_user }}"
|
||||||
|
- POSTGRES_PASSWORD: "{{ db_password }}"
|
||||||
|
- POSTGRES_DB: "{{ db_name }}"
|
||||||
|
networks:
|
||||||
|
"{{ mastodon_docker_network }}":
|
||||||
|
external: true
|
||||||
|
|
||||||
|
- docker_service:
|
||||||
|
project_name: web
|
||||||
|
definition:
|
||||||
|
version: "2.3"
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: "gargron/mastodon:v{{ mastodon_release }}"
|
||||||
|
networks:
|
||||||
|
- "{{ mastodon_docker_network }}"
|
||||||
|
command: bundle exec rails s -p 3000 -b '0.0.0.0'
|
||||||
|
restart: on-failure
|
||||||
|
env_file: /mastodon/.env
|
||||||
|
networks:
|
||||||
|
"{{ mastodon_docker_network }}":
|
||||||
|
external: true
|
||||||
|
# notify: "restart caddy webserver"
|
||||||
|
|
||||||
|
- docker_service:
|
||||||
|
project_name: sidekiq
|
||||||
|
definition:
|
||||||
|
version: "2.3"
|
||||||
|
services:
|
||||||
|
sidekiq:
|
||||||
|
image: "moritzheiber/mastodon-docker"
|
||||||
|
networks:
|
||||||
|
- "{{ mastodon_docker_network }}"
|
||||||
|
command: bundle exec sidekiq -q default -q mailers -q pull -q push
|
||||||
|
restart: on-failure
|
||||||
|
env_file: /mastodon/.env
|
||||||
|
networks:
|
||||||
|
"{{ mastodon_docker_network }}":
|
||||||
|
external: true
|
||||||
|
|
||||||
|
- docker_service:
|
||||||
|
project_name: streaming
|
||||||
|
definition:
|
||||||
|
version: "2.3"
|
||||||
|
services:
|
||||||
|
streaming:
|
||||||
|
image: "moritzheiber/mastodon-docker"
|
||||||
|
networks:
|
||||||
|
- "{{ mastodon_docker_network }}"
|
||||||
|
command: npm run start
|
||||||
|
restart: on-failure
|
||||||
|
env_file: /mastodon/.env
|
||||||
|
networks:
|
||||||
|
"{{ mastodon_docker_network }}":
|
||||||
|
external: true
|
||||||
|
# notify: "restart caddy webserver"
|
||||||
|
|
||||||
|
# - docker_service:
|
||||||
|
# project_name: web
|
||||||
|
# definition:
|
||||||
|
# version: "2.3"
|
||||||
|
# services:
|
||||||
|
# web:
|
||||||
|
# image: "moritzheiber/mastodon-docker"
|
||||||
|
# networks:
|
||||||
|
# - "{{ mastodon_docker_network }}"
|
||||||
|
# command: bundle exec rails s -p 3000 -b '0.0.0.0'
|
||||||
|
# restart: on-failure
|
||||||
|
# env_file: /mastodon/.env
|
||||||
|
# networks:
|
||||||
|
# "{{ mastodon_docker_network }}":
|
||||||
|
# external: true
|
||||||
|
# notify: "restart caddy webserver"
|
|
@ -12,15 +12,18 @@
|
||||||
become: true
|
become: true
|
||||||
with_items:
|
with_items:
|
||||||
- { id: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88", url: "https://download.docker.com/linux/ubuntu/gpg" }
|
- { id: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88", url: "https://download.docker.com/linux/ubuntu/gpg" }
|
||||||
|
when: docker_command == 'docker'
|
||||||
|
|
||||||
- name: Install Docker repository
|
- name: Install Docker repository
|
||||||
apt_repository: repo={{ item.repo }} state=present
|
apt_repository: repo={{ item.repo }} state=present
|
||||||
become: true
|
become: true
|
||||||
with_items:
|
with_items:
|
||||||
- { repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" }
|
- { repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" }
|
||||||
|
when: docker_command == 'docker'
|
||||||
|
|
||||||
- name: Run apt update
|
- name: Run apt update
|
||||||
apt:
|
apt:
|
||||||
update_cache: true
|
update_cache: true
|
||||||
cache_valid_time: 3600
|
cache_valid_time: 3600
|
||||||
become: true
|
become: true
|
||||||
|
when: docker_command == 'docker'
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
include_tasks: bare.yml
|
include_tasks: bare.yml
|
||||||
when: mastodon_bare_installation
|
when: mastodon_bare_installation
|
||||||
|
|
||||||
|
- import_tasks: ubuntu.yml
|
||||||
|
when: ansible_facts['distribution'] == 'Ubuntu'
|
||||||
|
|
||||||
- name: Ensure docker installation
|
- name: Ensure docker installation
|
||||||
include_tasks: docker.yml
|
include_tasks: docker.yml
|
||||||
when: not mastodon_bare_installation
|
when: not mastodon_bare_installation
|
||||||
|
|
Loading…
Reference in a new issue