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: true
|
||||
ansible_python_interpreter: "/usr/bin/python2"
|
||||
docker_compose_version: "1.16.1"
|
||||
docker_compose_hash: "1804b0ce6596efe707b9cab05d74b161833ed503f0535a937dd5d17bea8fc50a"
|
||||
mastodon_docker_image: "moritzheiber/mastodon-docker"
|
||||
mastodon_docker_network: "mastodon_network"
|
||||
|
||||
docker_command: podman
|
||||
install_python_packages:
|
||||
- package: "docker"
|
||||
|
||||
|
@ -17,13 +16,15 @@ uninstall_python_packages:
|
|||
- package: "docker-py"
|
||||
|
||||
install_packages:
|
||||
- package: "docker-ce"
|
||||
- package: "podman"
|
||||
- package: "python-pip-whl"
|
||||
- package: "python-setuptools"
|
||||
|
||||
uninstall_packages:
|
||||
- package: "docker-engine"
|
||||
- package: "docker"
|
||||
- package: "docker-ce"
|
||||
- package: "docker-ce-cli"
|
||||
- package: "dockerio"
|
||||
|
||||
run_preflight_checks: "true"
|
||||
|
|
|
@ -2,4 +2,8 @@
|
|||
- name: Bootstrapping
|
||||
import_tasks: docker/init.yml
|
||||
|
||||
- import_tasks: ubuntu.yml
|
||||
when: ansible_distribution == 'Ubuntu'
|
||||
|
||||
- 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
|
||||
package:
|
||||
name: "{{ item.package }}"
|
||||
|
@ -31,18 +20,13 @@
|
|||
state: absent
|
||||
with_items: "{{ uninstall_python_packages }}"
|
||||
|
||||
- name: Install docker-compose Python
|
||||
pip:
|
||||
name: docker-compose
|
||||
#version: 1.17.0rc1
|
||||
|
||||
- name: Check for existing network
|
||||
raw: "docker network inspect {{ mastodon_docker_network }}"
|
||||
raw: "{{ docker_command }} network inspect {{ mastodon_docker_network }}"
|
||||
register: docker_network
|
||||
ignore_errors: True
|
||||
become: true
|
||||
|
||||
- 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
|
||||
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
|
||||
with_items:
|
||||
- { id: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88", url: "https://download.docker.com/linux/ubuntu/gpg" }
|
||||
when: docker_command == 'docker'
|
||||
|
||||
- name: Install Docker repository
|
||||
apt_repository: repo={{ item.repo }} state=present
|
||||
become: true
|
||||
with_items:
|
||||
- { repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" }
|
||||
when: docker_command == 'docker'
|
||||
|
||||
- name: Run apt update
|
||||
apt:
|
||||
update_cache: true
|
||||
cache_valid_time: 3600
|
||||
become: true
|
||||
when: docker_command == 'docker'
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
include_tasks: bare.yml
|
||||
when: mastodon_bare_installation
|
||||
|
||||
- import_tasks: ubuntu.yml
|
||||
when: ansible_facts['distribution'] == 'Ubuntu'
|
||||
|
||||
- name: Ensure docker installation
|
||||
include_tasks: docker.yml
|
||||
when: not mastodon_bare_installation
|
||||
|
|
Loading…
Reference in a new issue