Compare commits
7 Commits
0172b193a1
...
3411f3d0a9
Author | SHA1 | Date |
---|---|---|
Jef Roosens | 3411f3d0a9 | |
Jef Roosens | 608b4fbe90 | |
Jef Roosens | 0b85900b71 | |
Jef Roosens | 4a4437683e | |
Jef Roosens | e483ab0d7a | |
Jef Roosens | 92094ff5fc | |
Jef Roosens | 7e4bb004e0 |
|
@ -1,4 +1,4 @@
|
|||
version: '2.8'
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
|
@ -32,6 +32,7 @@ services:
|
|||
db:
|
||||
image: 'postgres:13.2-alpine'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'pg_isready -U firefly'
|
||||
interval: '10s'
|
||||
|
@ -49,6 +50,7 @@ services:
|
|||
redis:
|
||||
image: 'redis:6.0.12-alpine'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'redis-cli -h localhost ping'
|
||||
interval: '10s'
|
||||
|
|
|
@ -12,7 +12,7 @@ DB_HOST=db
|
|||
DB_PORT=3306
|
||||
DB_DATABASE=koel
|
||||
DB_USERNAME=koel
|
||||
DB_PASSWORD=changeme
|
||||
DB_PASSWORD=koel
|
||||
|
||||
# A random 32-char string. You can leave this empty if use php artisan koel:init.
|
||||
APP_KEY=
|
||||
|
|
|
@ -1,14 +1,22 @@
|
|||
version: '3.5'
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
# This repository sadly only has a 'latest' flag
|
||||
image: 'hyzual/koel:latest'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'curl -f localhost:80 || exit 1'
|
||||
interval: '1m'
|
||||
timeout: '10s'
|
||||
retries: 3
|
||||
start_period: '10s'
|
||||
depends_on:
|
||||
- 'db'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
db:
|
||||
# Haven't found a good MySQL healthcheck yet
|
||||
condition: 'service_started'
|
||||
|
||||
networks:
|
||||
- 'default'
|
||||
- 'nginx'
|
||||
|
@ -18,17 +26,15 @@ services:
|
|||
- 'music:/music'
|
||||
|
||||
db:
|
||||
image: 'mysql:8'
|
||||
image: 'mysql:8.0.24'
|
||||
restart: 'always'
|
||||
command: '--default-authentication-plugin=mysql_native_password'
|
||||
|
||||
environment:
|
||||
- 'MYSQL_DATABASE=koel'
|
||||
- 'MYSQL_PASSWORD=$DB_PASSWORD'
|
||||
- 'MYSQL_ROOT_PASSWORD=$DB_PASSWORD'
|
||||
- 'MYSQL_USER=$DB_USERNAME'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
- 'MYSQL_USER=koel'
|
||||
- 'MYSQL_PASSWORD=koel'
|
||||
- 'MYSQL_RANDOM_ROOT_PASSWORD=yes'
|
||||
volumes:
|
||||
- 'db-data:/var/lib/mysql'
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
version: '3.5'
|
||||
version: '2.0'
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
version: '3.5'
|
||||
version: '2.0'
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
version: '3.5'
|
||||
version: '2.0'
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
|
@ -7,7 +7,7 @@ services:
|
|||
- 'BASE_IMAGE'
|
||||
- 'MC_VERSION'
|
||||
- 'PAPERMC_VERSION'
|
||||
image: 'chewingbever/mc-papermc:${MC_VERSION}-${PAPERMC_VERSION}'
|
||||
image: 'localhost:5000/mc-papermc:${MC_VERSION}-${PAPERMC_VERSION}'
|
||||
restart: 'always'
|
||||
|
||||
# Needed to interact with server console
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# Database settings
|
||||
DATABASE_URL=postgres://miniflux:changeme@db/miniflux?sslmode=disable
|
||||
RUN_MIGRATIONS=1
|
||||
|
||||
# Auto-create admin user
|
|
@ -1,3 +0,0 @@
|
|||
POSTGRES_DB=miniflux
|
||||
POSTGRES_USER=miniflux
|
||||
POSTGRES_PASSWORD=changeme
|
|
@ -1,28 +1,44 @@
|
|||
version: '3.5'
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'miniflux/miniflux:latest'
|
||||
image: 'miniflux/miniflux:2.0.29'
|
||||
restart: 'always'
|
||||
|
||||
depends_on:
|
||||
- 'db'
|
||||
db:
|
||||
condition: 'service_healthy'
|
||||
healthcheck:
|
||||
test: 'wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1'
|
||||
interval: '1m'
|
||||
timeout: '5s'
|
||||
retries: 3
|
||||
start_period: '5s'
|
||||
|
||||
env_file:
|
||||
- 'miniflux.env'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
- '.env'
|
||||
environment:
|
||||
# This is always the same, so we just put it here
|
||||
- 'DATABASE_URL=postgres://miniflux:miniflux@db/miniflux?sslmode=disable'
|
||||
networks:
|
||||
- 'default'
|
||||
- 'nginx'
|
||||
|
||||
db:
|
||||
image: 'postgres:13-alpine'
|
||||
image: 'postgres:13.2-alpine'
|
||||
restart: 'always'
|
||||
|
||||
env_file:
|
||||
- 'db.env'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
healthcheck:
|
||||
test: 'pg_isready -U miniflux'
|
||||
interval: '10s'
|
||||
timeout: '5s'
|
||||
retries: 5
|
||||
start_period: '0s'
|
||||
|
||||
environment:
|
||||
- 'POSTGRES_DB=miniflux'
|
||||
- 'POSTGRES_USER=miniflux'
|
||||
- 'POSTGRES_PASSWORD=miniflux'
|
||||
volumes:
|
||||
- 'db-data:/var/lib/postgresql/data'
|
||||
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
#
|
||||
# Welcome, friend ❤. Thanks for trying out Monica. We hope you'll have fun.
|
||||
#
|
||||
|
||||
# Two choices: local|production. Use local if you want to install Monica as a
|
||||
# development version. Use production otherwise.
|
||||
APP_ENV=production
|
||||
|
||||
# true if you want to show debug information on errors. For production, put this
|
||||
# to false.
|
||||
APP_DEBUG=false
|
||||
|
||||
# The encryption key. This is the most important part of the application. Keep
|
||||
# this secure otherwise, everyone will be able to access your application.
|
||||
# Must be 32 characters long exactly.
|
||||
# Use `php artisan key:generate` or `pwgen -s 32 1` to generate a random key.
|
||||
APP_KEY=ChangeMeBy32KeyLengthOrGenerated
|
||||
|
||||
# Prevent information leakage by referring to IDs with hashIds instead of
|
||||
# the actual IDs used in the database.
|
||||
HASH_SALT=ChangeMeBy20+KeyLength
|
||||
HASH_LENGTH=18
|
||||
|
||||
# The URL of your application.
|
||||
APP_URL=http://localhost
|
||||
|
||||
# Force using APP_URL as base url of your application.
|
||||
# You should not need this, unless you are using subdirectory config.
|
||||
APP_FORCE_URL=false
|
||||
|
||||
# Database information
|
||||
# To keep this information secure, we urge you to change the default password
|
||||
# Currently only "mysql" compatible servers are working
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=db
|
||||
DB_PORT=3306
|
||||
# You can use mysql unix socket if available, it overrides DB_HOST and DB_PORT values.
|
||||
#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock
|
||||
DB_DATABASE=monica
|
||||
DB_USERNAME=monica
|
||||
DB_PASSWORD=monica
|
||||
DB_PREFIX=
|
||||
DB_TEST_HOST=127.0.0.1
|
||||
DB_TEST_DATABASE=monica_test
|
||||
DB_TEST_USERNAME=homestead
|
||||
DB_TEST_PASSWORD=secret
|
||||
|
||||
# Use utf8mb4 database charset format to support emoji characters
|
||||
# ⚠ be sure your DBMS supports utf8mb4 format
|
||||
DB_USE_UTF8MB4=true
|
||||
|
||||
# Mail credentials used to send emails from the application.
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=
|
||||
MAIL_PASSWORD=
|
||||
MAIL_ENCRYPTION=
|
||||
# Outgoing emails will be sent with these identity
|
||||
MAIL_FROM_ADDRESS=
|
||||
MAIL_FROM_NAME="Monica instance"
|
||||
# New registration notification sent to this email
|
||||
APP_EMAIL_NEW_USERS_NOTIFICATION=
|
||||
|
||||
# Ability to disable signups on your instance.
|
||||
# Can be true or false. Default to false.
|
||||
APP_DISABLE_SIGNUP=true
|
||||
|
||||
# Enable user email verification.
|
||||
APP_SIGNUP_DOUBLE_OPTIN=false
|
||||
|
||||
# Set trusted proxy IP addresses.
|
||||
# To trust all proxies that connect directly to your server, use a "*".
|
||||
# To trust one or more specific proxies that connect directly to your server,
|
||||
# use a comma separated list of IP addresses.
|
||||
APP_TRUSTED_PROXIES=*
|
||||
|
||||
# Enable automatic cloudflare trusted proxy discover
|
||||
APP_TRUSTED_CLOUDFLARE=false
|
||||
|
||||
# Frequency of creation of new log files. Logs are written when an error occurs.
|
||||
# Refer to config/logging.php for the possible values.
|
||||
LOG_CHANNEL=daily
|
||||
|
||||
# Error tracking. Specific to hosted version on .com. You probably don't need
|
||||
# those.
|
||||
SENTRY_SUPPORT=false
|
||||
SENTRY_LARAVEL_DSN=
|
||||
|
||||
# Send a daily ping to https://version.monicahq.com to check if a new version
|
||||
# is available. When a new version is detected, you will have a message in the
|
||||
# UI, as well as the release notes for the new changes. Can be true or false.
|
||||
# Default to true.
|
||||
CHECK_VERSION=true
|
||||
|
||||
# Cache, session, and queue parameters
|
||||
# ⚠ Change this only if you know what you are doing
|
||||
#. Cache: database, file, memcached, redis, dynamodb
|
||||
#. Session: file, cookie, database, apc, memcached, redis, array
|
||||
#. Queue: sync, database, beanstalkd, sqs, redis
|
||||
# If Queue is not set to 'sync', you'll have to set a queue worker
|
||||
# See https://laravel.com/docs/5.7/queues#running-the-queue-worker
|
||||
CACHE_DRIVER=redis
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
QUEUE_CONNECTION=sync
|
||||
|
||||
# If you use redis, set the redis host or ip, like:
|
||||
REDIS_HOST=redis
|
||||
|
||||
# Maximum allowed size for uploaded files, in kilobytes.
|
||||
# Make sure this is an integer, without commas or spaces.
|
||||
DEFAULT_MAX_UPLOAD_SIZE=10240
|
||||
|
||||
# Maximum allowed storage size per account, in megabytes.
|
||||
# Make sure this is an integer, without commas or spaces.
|
||||
DEFAULT_MAX_STORAGE_SIZE=512
|
||||
|
||||
# Default filesystem to store uploaded files.
|
||||
# Possible values: public|s3
|
||||
DEFAULT_FILESYSTEM=public
|
||||
|
||||
# AWS keys for S3 when using this storage method
|
||||
AWS_KEY=
|
||||
AWS_SECRET=
|
||||
AWS_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
AWS_SERVER=
|
||||
|
||||
# Allow Two Factor Authentication feature on your instance
|
||||
MFA_ENABLED=true
|
||||
|
||||
# Enable DAV support
|
||||
DAV_ENABLED=true
|
||||
|
||||
# CLIENT ID and SECRET used for OAuth authentication
|
||||
PASSPORT_PERSONAL_ACCESS_CLIENT_ID=
|
||||
PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=
|
||||
|
||||
# Allow to access general statistics about your instance through a public API
|
||||
# call
|
||||
ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false
|
||||
|
||||
# Indicates that each user in the instance must comply to international policies
|
||||
# like CASL or GDPR
|
||||
POLICY_COMPLIANT=true
|
||||
|
||||
# Enable geolocation services
|
||||
# This is used to translate addresses to GPS coordinates.
|
||||
ENABLE_GEOLOCATION=false
|
||||
|
||||
# API key for geolocation services
|
||||
# We use LocationIQ (https://locationiq.com/) to translate addresses to
|
||||
# latitude/longitude coordinates. We could use Google instead but we don't
|
||||
# want to give anything to Google, ever.
|
||||
# LocationIQ offers 10,000 free requests per day.
|
||||
LOCATION_IQ_API_KEY=
|
||||
|
||||
# Enable weather on contact profile page
|
||||
# Weather can only be fetched if we know longitude/latitude - this is why
|
||||
# you also need to activate the geolocation service above to make it work
|
||||
ENABLE_WEATHER=false
|
||||
|
||||
# Access to weather data from darksky api
|
||||
# https://darksky.net/dev/register
|
||||
# Darksky provides an api with 1000 free API calls per day
|
||||
# You need to enable the weather above if you provide an API key here.
|
||||
DARKSKY_API_KEY=
|
|
@ -0,0 +1,58 @@
|
|||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'monica:2.20.0-apache'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'curl -f localhost:8080 || exit 1'
|
||||
interval: '1m'
|
||||
timeout: '10s'
|
||||
retries: 3
|
||||
start_period: '10s'
|
||||
depends_on:
|
||||
db:
|
||||
condition: 'service_started'
|
||||
redis:
|
||||
condition: 'service_healthy'
|
||||
|
||||
env_file:
|
||||
- '.env'
|
||||
networks:
|
||||
- 'default'
|
||||
- 'nginx'
|
||||
volumes:
|
||||
- 'data:/var/www/html/storage'
|
||||
|
||||
db:
|
||||
image: 'mysql:8.0.24'
|
||||
restart: 'always'
|
||||
command: '--default-authentication-plugin=mysql_native_password'
|
||||
|
||||
environment:
|
||||
- 'MYSQL_RANDOM_ROOT_PASSWORD=true'
|
||||
- 'MYSQL_DATABASE=monica'
|
||||
- 'MYSQL_USER=monica'
|
||||
- 'MYSQL_PASSWORD=monica'
|
||||
|
||||
volumes:
|
||||
- 'db-data:/var/lib/mysql'
|
||||
|
||||
redis:
|
||||
image: 'redis:6.0.12-alpine'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'redis-cli -h localhost ping'
|
||||
interval: '10s'
|
||||
timeout: '5s'
|
||||
retries: 3
|
||||
|
||||
networks:
|
||||
nginx:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
data:
|
||||
db-data:
|
|
@ -2,7 +2,7 @@
|
|||
POSTGRES_HOST=db
|
||||
POSTGRES_DB=nextcloud
|
||||
POSTGRES_USER=nextcloud
|
||||
POSTGRES_PASSWORD=pass
|
||||
POSTGRES_PASSWORD=nextcloud
|
||||
|
||||
# Redis
|
||||
REDIS_HOST=redis
|
||||
|
|
|
@ -1,17 +1,24 @@
|
|||
version: '3.5'
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'nextcloud:20-apache'
|
||||
image: 'nextcloud:21.0.1-apache'
|
||||
restart: 'always'
|
||||
|
||||
healthcheck:
|
||||
test: 'curl -f localhost || exit 1'
|
||||
interval: '1m'
|
||||
timeout: '10s'
|
||||
retries: 3
|
||||
start_period: '10s'
|
||||
depends_on:
|
||||
- 'db'
|
||||
- 'redis'
|
||||
db:
|
||||
condition: 'service_healthy'
|
||||
redis:
|
||||
condition: 'service_healthy'
|
||||
|
||||
env_file:
|
||||
- '.env'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
networks:
|
||||
- 'default'
|
||||
- 'nginx'
|
||||
|
@ -21,40 +28,41 @@ services:
|
|||
- 'root:/var/www/html'
|
||||
|
||||
cron:
|
||||
image: 'nextcloud:20-apache'
|
||||
entrypoint: '/cron.sh'
|
||||
image: 'nextcloud:21.0.1-apache'
|
||||
restart: 'always'
|
||||
entrypoint: '/cron.sh'
|
||||
|
||||
depends_on:
|
||||
- 'app'
|
||||
app:
|
||||
condition: 'service_healthy'
|
||||
|
||||
env_file:
|
||||
- '.env'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
volumes:
|
||||
- 'config:/var/www/html/config'
|
||||
- 'data:/var/www/html/data'
|
||||
- 'root:/var/www/html'
|
||||
|
||||
db:
|
||||
image: 'postgres:13-alpine'
|
||||
image: 'postgres:13.2-alpine'
|
||||
restart: 'always'
|
||||
|
||||
environment:
|
||||
- 'POSTGRES_DB'
|
||||
- 'POSTGRES_USER'
|
||||
- 'POSTGRES_PASSWORD'
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
- 'POSTGRES_DB=nextcloud'
|
||||
- 'POSTGRES_USER=nextcloud'
|
||||
- 'POSTGRES_PASSWORD=nextcloud'
|
||||
volumes:
|
||||
- 'db-data:/var/lib/postgresql/data'
|
||||
|
||||
redis:
|
||||
image: 'redis:6-alpine'
|
||||
image: 'redis:6.0.12-alpine'
|
||||
restart: 'always'
|
||||
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
healthcheck:
|
||||
test: 'redis-cli -h localhost ping'
|
||||
interval: '10s'
|
||||
timeout: '5s'
|
||||
retries: 3
|
||||
|
||||
networks:
|
||||
nginx:
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
version: '3.5'
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'portainer/portainer-ce:latest'
|
||||
image: 'portainer/portainer-ce:2.1.1-alpine'
|
||||
restart: 'always'
|
||||
|
||||
labels:
|
||||
- 'com.centurylinklabs.watchtower.enable=true'
|
||||
healthcheck:
|
||||
test: 'curl -f localhost:9000 || exit 1'
|
||||
interval: '1m'
|
||||
timeout: '10s'
|
||||
retries: 3
|
||||
start_period: '10s'
|
||||
|
||||
networks:
|
||||
- 'nginx'
|
||||
ports:
|
||||
|
@ -17,8 +22,7 @@ services:
|
|||
|
||||
networks:
|
||||
nginx:
|
||||
external:
|
||||
name: 'nginx'
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
|
|
@ -1,29 +1,15 @@
|
|||
# Copyright (C) 2020 Jef Roosens
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# Build arguments
|
||||
# What version of TShock to use
|
||||
RELEASE_TAG=
|
||||
|
||||
# Environment variables
|
||||
# What world size to create:
|
||||
# 1 for small, 2 for medium, 3 for large
|
||||
AUTOCREATE=2
|
||||
|
||||
# Mount points
|
||||
CONFIG_DIR=
|
||||
LOGS_DIR=
|
||||
WORLDS_DIR=
|
||||
# Mount points for the data directories
|
||||
# By default, it creates volumes
|
||||
CONFIG_DIR=config
|
||||
LOGS_DIR=logs
|
||||
WORLDS_DIR=worlds
|
||||
|
||||
# Other
|
||||
# The port to publish the server on
|
||||
PORT=7777
|
||||
|
|
|
@ -1,49 +1,27 @@
|
|||
# Copyright (C) 2020 Jef Roosens
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
FROM alpine:latest AS base
|
||||
FROM alpine:3.13.5 AS base
|
||||
|
||||
# Build arguments
|
||||
ARG RELEASE_TAG
|
||||
|
||||
# Add unzip & curl
|
||||
RUN apk update && apk add --no-cache unzip curl
|
||||
|
||||
WORKDIR /terraria
|
||||
|
||||
# Download & unzip
|
||||
# TODO convert this to jq?
|
||||
RUN curl -s "https://api.github.com/repos/Pryaxis/TShock/releases/tags/${RELEASE_TAG}" | \
|
||||
grep "browser_download_url" | \
|
||||
grep -o "https[^\"]\+" | \
|
||||
xargs curl -sLo tshock.zip && \
|
||||
unzip tshock.zip && \
|
||||
rm tshock.zip && \
|
||||
# Is there a better way to do this?
|
||||
mv TShock* tshock
|
||||
RUN apk update && apk add --no-cache unzip curl && \
|
||||
curl -s "https://api.github.com/repos/Pryaxis/TShock/releases/tags/${RELEASE_TAG}" | \
|
||||
grep "browser_download_url" | \
|
||||
grep -o "https[^\"]\+" | \
|
||||
xargs curl -sLo tshock.zip && \
|
||||
unzip -d tshock tshock.zip && \
|
||||
rm tshock.zip
|
||||
|
||||
|
||||
FROM mono:latest
|
||||
FROM mono:6.12.0.107
|
||||
WORKDIR /terraria
|
||||
|
||||
COPY --from=base /terraria/tshock /terraria
|
||||
|
||||
# Create worlds directory & symlink it
|
||||
RUN mkdir -p worlds logs config /root/.local/share/Terraria && \
|
||||
ln -s /terraria/worlds /root/.local/share/Terraria/Worlds
|
||||
ln -s /terraria/worlds /root/.local/share/Terraria/Worlds
|
||||
|
||||
ENTRYPOINT \
|
||||
mono /terraria/TerrariaServer.exe \
|
||||
|
|
|
@ -1,23 +1,3 @@
|
|||
<!---
|
||||
|
||||
Copyright (C) 2020 Jef Roosens
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
# Build arguments
|
||||
The only required build argument is `RELEASE_TAG`. This is the GitHub tag of
|
||||
the release you wish to use. The releases can be found
|
||||
|
|
|
@ -1,37 +1,25 @@
|
|||
# Copyright (C) 2020 Jef Roosens
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
version: '3.5'
|
||||
version: '2.4'
|
||||
services:
|
||||
tshock:
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- 'RELEASE_TAG=${RELEASE_TAG}'
|
||||
image: 'terraria-tshock:${RELEASE_TAG}'
|
||||
|
||||
restart: 'unless-stopped'
|
||||
image: 'chewingbever/terraria-tshock:${RELEASE_TAG}'
|
||||
restart: 'always'
|
||||
stdin_open: true
|
||||
tty: true
|
||||
|
||||
environment:
|
||||
- AUTOCREATE
|
||||
- 'AUTOCREATE'
|
||||
ports:
|
||||
- '$PORT:7777'
|
||||
volumes:
|
||||
- '$CONFIG_DIR:/terraria/config'
|
||||
- '$LOGS_DIR:/terraria/logs'
|
||||
- '$WORLDS_DIR:/terraria/worlds'
|
||||
|
||||
volumes:
|
||||
config:
|
||||
logs:
|
||||
worlds:
|
||||
|
|
Reference in New Issue