Install and configure Docker CE: https://docs.docker.com/docker-for-mac/.
First, backup from any existing containers:
mysqldump -h 127.0.0.1 --column-statistics=0 -u mmuser -p mattermost_test > mm_mysql_backup.sql pg_dump -U mmuser -W -d mattermost_test -h 127.0.0.1 > mm_postgres_backup.bak
Then after upgrading and starting the new docker-compose managed containers, restore the data:
mysql -u mmuser -p -h 127.0.0.1 mattermost_test < mm_mysql_backup.sql psql -U mmuser -W -h 127.0.0.1 -f mm_postgres_backup.bak mattermost_test
If you don’t migrate your data, the new, docker-compose-managed containers will start out empty. To remove the old containers – destroying any existing data – use
Download and install homebrew: https://brew.sh/.
brew install go
Update your shell’s initialization script (e.g.
.zshrc) and add the following:
export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin ulimit -n 8096
Re-source your shell’s initialization script to update
PATH in your current shell:
Clone the Mattermost source code from your fork:
git clone https://github.com/YOUR_GITHUB_USERNAME/mattermost-server.git
Start the server:
cd mattermost-server make run-server
Note: If you see lot of
nc: bad address 'elasticsearch' messages, eventually exiting with the message
Service elasticsearch:9200 did not start within 300 seconds. Aborting..., increase the memory available for the Docker Engine by going to Docker’s preferences -> Advanced.
If you see an error which says
Failed to ping DB, it’s probably due to a conflict between the PostgreSQL service in Docker and the one which is running system-wide. You can stop the system-wide server temporarily by running
brew services stop postgres in your terminal, then restart the Docker service.
Test your environment:
curl http://localhost:8065/api/v4/system/ping make stop-server
If successful, the
curl step will return a JSON object:
stop-server make target does not stop all the docker containers started by
run-server. To stop the running docker containers: