Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fnagel/docker-typo3
WIP - Docker files for TYPO3 CMS
https://github.com/fnagel/docker-typo3
docker docker-compose docker-image typo3 typo3-cms
Last synced: 2 months ago
JSON representation
WIP - Docker files for TYPO3 CMS
- Host: GitHub
- URL: https://github.com/fnagel/docker-typo3
- Owner: fnagel
- License: mit
- Created: 2018-01-26T10:52:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-17T21:17:05.000Z (4 months ago)
- Last Synced: 2024-09-18T02:10:53.630Z (4 months ago)
- Topics: docker, docker-compose, docker-image, typo3, typo3-cms
- Language: Dockerfile
- Size: 112 KB
- Stars: 8
- Watchers: 4
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TYPO3 Docker
## What is this?
Yet another TYPO3 CMS Docker package based upon PHP and Apache. It's simple, understandable and yet fully functional.
_Suitable for development and production._
**What is included?**
* A minimal production image
* A development image with
* SSL support
* Composer
* Xdebug
* Mailhog
* Adminer
* Node.js (with npm)
* A TYPO3 CMS "Introduction package" image
* A simple way to create an image for your custom project## Usage
* Adjust `.env` file
* Create base image
* Create dev image (optional)
* Create demo or project container### Base images
Base images for running TYPO3 CMS. Needed as base images for demo and project container.
#### Production
Build and run a minimal production / base image:
```
docker-compose build
```This will create the `fnagel/docker-typo3-webserver` image.
#### Development
Build a container with development tools (composer, xdebug, etc.):
```
docker-compose -f docker-compose.yml -f docker-compose.dev.yml build
```This will create the `fnagel/docker-typo3-webserver-dev` image.
### Demo (Introduction Package)
**Create images**
Build and run a container with installed and fully functional introduction package:
```
docker-compose -f docker-compose.yml -f docker-compose.demo.yml up --build -d
```or with development tools:
```
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.demo.yml up --build -d
```**Setup demo**
Use the following command to install the introduction package using TYPO3 console:
```
docker-compose exec webserver bash ./install.sh
```Default domain is [http://demo.typo3.local]()
### Use with existing projects
**Project requirements**
* A GIT repository for your project
* A `composer` based TYPO3 project
* Using `/web` folder for all public files (using the `web-dir` directive, see composer.json in `/demo` folder)**How to integrate with your existing TYPO3 CMS project**
* Clone this repository to `.docker` sub folder of your project
* Copy the `.env` file to your project root folder and change variables as needed
* Run the following commands:```
docker-compose -f .docker/docker-compose.yml -f .docker/docker-compose.project.yml up --build -d
```**This will:**
* Create production image with web server and database
* Copy your local files into the container
* Install your composer dependencies**Copy files:**
Use the following command to import more static files to the volume:
```
docker cp ./web/folder webserver:/var/www/html/
```**Import database:**
Use the following command to import your database:
```
docker-compose run db bash -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -h db $MYSQL_DATABASE' < .docker/project/data/db.sql
```### Database credentials
Default values for the database connection see `MYSQL_*` variables in the `.env` file.
### Change PHP version
Change the `DOCKER_PHP_TAG` variable in the `.env` file.
## Hints
* "Docker Toolbox for Windows"
* You might need to run `@FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i` on Windows
* Increase disk size:
`docker-machine rm default` and
`docker-machine create -d virtualbox --virtualbox-disk-size "100000" default`
This creates a 100 GB disk but erases all exiting data!* "Docker for Windows WSL"
* Move data file: https://stackoverflow.com/a/63752264/991681* Clean up on down (unused images and volumes): `docker-compose down --rmi local -v`
* Clean up radical (be VERY careful): `docker image prune -a`
* Do a clean build by using: `docker-compose build --no-cache `
* Possible errors:
* `ERROR: for xyz Cannot start service xyz: network 12345 not found`
* Use `docker-compose up --force-recreate`* `ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network`
* List your networks `docker network ls`
* Remove unused networks `docker network rm SOME_NETWORK_ID`* `AH00526: Syntax error on line 170 of /etc/apache2/apache2.conf: Multiple arguments not (yet) supported.`
* Remove `/` from beginning of `APACHE_DOCUMENT_ROOT` env variable value## ToDo
* Document env file issue and workaround
* Add simple docker.sh file?
* `APACHE_DOCUMENT_ROOT` with leading slash will add local Windows path, so we remove the `/` at the beginning
* This is the case when using sh files with docker commands in it, e.g. `bash docker.sh up`
* Using bash will end up in docker auth error, unsure why
* Using sh instead of bash as command works but produces the above described error* Document ftp usage
* Sync folder (shared volumes) see `sync` and `remove-symlinks` branch -> obsolete due to bad performance
## Credits
Thanks to @jzaefferer (@sloppyio) for the help getting started with docker!
**Resources**
* https://github.com/sloppyio/quickstarters
* https://github.com/docker-library/wordpress
* https://github.com/t3easy/docker-typo3
* https://writing.pupius.co.uk/apache-and-php-on-docker-44faef716150