mirror of
https://github.com/ggogel/seafile-containerized.git
synced 2024-11-16 09:01:38 +00:00
Updated README, added licence, and provide a vagrant file.
This commit is contained in:
parent
91b07750ee
commit
5b3bc6ca0c
13
LICENSE.txt
Normal file
13
LICENSE.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
Copyright (c) 2016 Seafile Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
114
README.md
114
README.md
|
@ -1,3 +1,113 @@
|
|||
## seafile-docker [![Build Status](https://secure.travis-ci.org/haiwen/seafile-docker.png?branch=master)](http://travis-ci.org/haiwen/seafile-docker)
|
||||
[![Build Status](https://secure.travis-ci.org/haiwen/seafile-docker.png?branch=master)](http://travis-ci.org/haiwen/seafile-docker)
|
||||
|
||||
Seafile Docker Image.
|
||||
### About
|
||||
|
||||
- [Docker](https://docker.com/) is an open source project to pack, ship and run any Linux application in a lighter weight, faster container than a traditional virtual machine.
|
||||
|
||||
- Docker makes it much easier to deploy [a Seafile server](https://github.com/haiwen/seafile) on your servers and keep it updated.
|
||||
|
||||
- The base image configures Seafile with the Seafile team's recommended optimal defaults.
|
||||
|
||||
### Getting Started
|
||||
|
||||
The simplest way to get started is via the **simple** template, which can be installed within servera minutes.
|
||||
|
||||
```
|
||||
sudo git clone https://github.com/haiwen/seafile-docker.git /var/seafile/
|
||||
cd /var/seafile/
|
||||
|
||||
sudo cp samples/server.conf bootstrap/bootstrap.conf
|
||||
# Edit the options according to your use case
|
||||
vim bootstrap/bootstrap.conf
|
||||
|
||||
sudo ./launcher bootstrap
|
||||
sudo ./launcher start
|
||||
```
|
||||
|
||||
### Directory Structure
|
||||
|
||||
#### `/bootstrap`
|
||||
|
||||
This directory is for container definitions for your Seafile containers. You are in charge of this directory, it ships empty.
|
||||
|
||||
#### `/samples`
|
||||
|
||||
Sample container definitions you may use to bootstrap your environment. You can copy templates from here into the bootstrap directory.
|
||||
|
||||
#### `/shared`
|
||||
|
||||
Placeholder spot for shared volumes. You may elect to store certain persistent information outside of a container, in our case we keep various logfiles and upload directory outside. This allows you to rebuild containers easily without losing important information.
|
||||
|
||||
- /shared/db: This is the data directory for mysql server
|
||||
- /shared/seafile: This is the directory for seafile server configuration and data.
|
||||
- /shared/logs: This is the directory for logs.
|
||||
- /shared/logs/var-log: This is the directory that would be mounted as `/var/log` inside the container. For example, you can find the nginx logs in `shared/logs/var-log/nginx/`.
|
||||
- /shared/logs/seafile: This is the directory that would contain the log files of seafile server processes. For example, you can find seaf-server logs in `shared/logs/seafile/seafile.log`.
|
||||
|
||||
#### `/templates`
|
||||
|
||||
Various jinja2 templates used for seafile server configuration.
|
||||
|
||||
#### `/image`
|
||||
|
||||
Dockerfiles for Seafile.
|
||||
|
||||
The Docker repository will always contain the latest built version at: https://hub.docker.com/r/seafileltd/server/, you should not need to build the base image.
|
||||
|
||||
### Launcher
|
||||
|
||||
The base directory contains a single bash script which is used to manage containers. You can use it to "bootstrap" a new container, enter, start, stop and destroy a container.
|
||||
|
||||
```
|
||||
Usage: launcher COMMAND
|
||||
Commands:
|
||||
start: Start/initialize a container
|
||||
stop: Stop a running container
|
||||
restart: Restart a container
|
||||
destroy: Stop and remove a container
|
||||
enter: Use docker exec to enter a container
|
||||
logs: Docker logs for container
|
||||
memconfig: Configure sane defaults for available RAM
|
||||
bootstrap: Bootstrap a container for the config based on a template
|
||||
rebuild: Rebuild a container (destroy old, bootstrap, start new)
|
||||
```
|
||||
|
||||
If the environment variable "SUPERVISED" is set to true, the container won't be detached, allowing a process monitoring tool to manage the restart behaviour of the container.
|
||||
|
||||
### Container Configuration
|
||||
|
||||
The beginning of the container definition can contain the following "special" sections:
|
||||
|
||||
#### port mapping:
|
||||
|
||||
```conf
|
||||
server.port_mappings = 80:80,443:443
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
View the container logs: `./launcher logs`
|
||||
|
||||
Spawn a shell inside your container using `./launcher enter`. This is the most foolproof method if you have host root access.
|
||||
|
||||
### Developing with Vagrant
|
||||
|
||||
If you are looking to make modifications to this repository, you can easily test
|
||||
out your changes before committing, using the magic
|
||||
of [Vagrant](http://vagrantup.com). Install Vagrant as
|
||||
per
|
||||
[the default instructions](http://docs.vagrantup.com/v2/installation/index.html),
|
||||
and then run:
|
||||
|
||||
vagrant up
|
||||
|
||||
This will spawn a new Ubuntu VM, install Docker, and then await your
|
||||
instructions. You can then SSH into the VM with `vagrant ssh`, become `root`
|
||||
with `sudo -i`, and then you're right to go. Your live git repo is already
|
||||
available at `/var/seafile`, so you can just `cd /var/seafile` and then start
|
||||
running `launcher`.
|
||||
|
||||
|
||||
License
|
||||
===
|
||||
Apache
|
||||
|
|
35
Vagrantfile
vendored
Normal file
35
Vagrantfile
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
Vagrant.configure(2) do |config|
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.memory = 2048
|
||||
v.cpus = 4
|
||||
end
|
||||
|
||||
config.vm.define :dockerhost do |config|
|
||||
config.vm.box = "trusty64"
|
||||
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
|
||||
|
||||
if ENV["http_proxy"]
|
||||
config.vm.provision "shell", inline: <<-EOF
|
||||
echo "Acquire::http::Proxy \\"#{ENV['http_proxy']}\\";" >/etc/apt/apt.conf.d/50proxy
|
||||
echo "http_proxy=\"#{ENV['http_proxy']}\"" >/etc/profile.d/http_proxy.sh
|
||||
EOF
|
||||
end
|
||||
|
||||
config.vm.provision "shell", inline: <<-EOF
|
||||
set -e
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
echo "en_US.UTF-8 UTF-8" >/etc/locale.gen
|
||||
locale-gen
|
||||
echo "Apt::Install-Recommends 'false';" >/etc/apt/apt.conf.d/02no-recommends
|
||||
echo "Acquire::Languages { 'none' };" >/etc/apt/apt.conf.d/05no-languages
|
||||
apt-get update
|
||||
apt-get -y remove --purge puppet juju
|
||||
apt-get -y autoremove --purge
|
||||
wget -qO- https://get.docker.com/ | sh
|
||||
|
||||
ln -s /vagrant /var/seafile
|
||||
EOF
|
||||
end
|
||||
end
|
|
@ -104,4 +104,4 @@ admin.email = $admin_email
|
|||
admin.password = $admin_passwd
|
||||
EOF
|
||||
|
||||
# ./launcher bootstrap && ./launcher start
|
||||
./launcher bootstrap && ./launcher start
|
||||
|
|
Loading…
Reference in a new issue