ワークディレクトリ作成
$ mkdir -p guacamole
$ cd guacamole
docker-compose.xml作成
$ cat << EOF >> docker-compose.yml
guacd:
image: guacamole/guacd
container_name: guacamole-guacd
mysql:
image: mysql:5.7
container_name: guacamole-mysql
environment:
- MYSQL_ROOT_PASSWORD=mysqlpass
volumes:
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
guacamole:
image: guacamole/guacamole
container_name: guacamole
links:
- guacd:guacd
- mysql:mysql
ports:
- "8080:8080"
environment:
- MYSQL_DATABASE=guacamole_db
- MYSQL_USER=guacamole_user
- MYSQL_PASSWORD=guacapass
nginx:
image: nginx
container_name: guacamole-nginx
ports:
- "80:80"
volumes:
- "./nginx:/etc/nginx"
links:
- guacamole
EOF
SQL初期化用のスクリプトを作成
$ mkdir -p ./mysql/init
$ cat << EOF >> ./mysql/init/1_createdb.sql
CREATE DATABASE guacamole_db;
CREATE USER guacamole_user IDENTIFIED BY 'guacapass';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO guacamole_user;
FLUSH PRIVILEGES;
EOF
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > ./mysql/init/2_initguacamoledb.sql
$ sed -i '1s/^/use guacamole_db;\n/' ./mysql/init/2_initguacamoledb.sql
NGINX用の事前設定
$ docker run -it -d --name tmp-nginx nginx
$ docker cp tmp-nginx:/etc/nginx nginx
$ docker rm -f tmp-nginx
$ vi ./nginx/conf.d/guacamole.conf
--
server {
location /guacamole/ {
proxy_pass http://guacamole:8080/guacamole/
xxx
xxx
}
}
--
$ docker-compose up -d
$ docker-compose ps