https://github.com/mdelapenya/docker-tomcat-mysql
Docker image for tomcat+mysql, orchestrated with supervisord
https://github.com/mdelapenya/docker-tomcat-mysql
docker mysql supervisord tomcat
Last synced: 8 months ago
JSON representation
Docker image for tomcat+mysql, orchestrated with supervisord
- Host: GitHub
- URL: https://github.com/mdelapenya/docker-tomcat-mysql
- Owner: mdelapenya
- Created: 2017-04-12T09:12:12.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-06-21T15:23:20.000Z (over 5 years ago)
- Last Synced: 2025-04-19T07:46:55.784Z (8 months ago)
- Topics: docker, mysql, supervisord, tomcat
- Language: Shell
- Size: 11.7 KB
- Stars: 30
- Watchers: 4
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Usage
To create the image `mdelapenya/tomcat-mysql`, execute the following command on the mdelapenya-docker-tomcat-mysql folder:
```shell
docker build -t mdelapenya/tomcat-mysql .
```
You can now push your new image to the registry:
```shell
docker push mdelapenya/tomcat-mysql
```
## Running your tomcat-mysql docker image
Start your image binding the external ports 8080 and 3306 in all interfaces to your container:
```shell
docker run -d -p 8080:8080 -p 3306:3306 mdelapenya/tomcat-mysql
```
Test your deployment:
```shell
curl http://localhost:8080/
```
Tomcat 7.0.77's home page should appear.
## Loading your custom Java application
Copy the WAR file representing your application to `/opt/apache-tomcat-7.0.77/webapps/` folder:
```shell
FROM mdelapenya/tomcat-mysql:7.0.77
COPY yourapp.war /opt/apache-tomcat-7.0.77/webapps/yourapp.war
```
After that, build the new `Dockerfile`:
```shell
docker build -t username/my-tomcat-mysql-app .
```
And test it:
```shell
docker run -d -p 8080:80 -p 3306:3306 username/my-tomcat-mysql-app
```
Test your deployment:
```shell
curl http://localhost:8080/yourapp
```
That's it!
## Connecting to the bundled MySQL server from within the container
The bundled MySQL server has a `root` user with no password for local connections.
Simply connect from your Java code with this user (using sql2o library):
```java
String jdbcUrl = "jdbc-url-connection";
String jdbcUser = "jdbc-user";
String jdbcPassword = "jdbc-password";
return new Sql2o(jdbcUrl, jdbcUser, jdbcPassword);
```
## Connecting to the bundled MySQL server from outside the container
The first time that you run the container, a new user `admin` with all privileges
will be created in MySQL with a random password. To get the password, check the logs
of the container by running:
```shell
docker logs $CONTAINER_ID
```
You will see an output like the following:
```shell
========================================================================
You can now connect to this MySQL Server using:
mysql -uadmin -p47nnf4FweaKu -h -P
Please remember to change the above password as soon as possible!
MySQL user 'root' has no password but only allows local connections
========================================================================
```
In this case, `47nnf4FweaKu` is the password allocated to the `admin` user.
You can then connect to MySQL:
```shell
mysql -uadmin -p47nnf4FweaKu
```
Remember that the `root` user does not allow connections from outside the container -
you should use this `admin` user instead!
## Setting a specific password for the MySQL server admin account
If you want to use a preset password instead of a random generated one, you can
set the environment variable `MYSQL_PASS` to your specific password when running the container:
```shell
docker run -d -p 80:80 -p 3306:3306 -e MYSQL_PASS="mypass" mdelapenya/liferay-portal-mysql
```
You can now test your new admin password:
```shell
mysql -uadmin -p"mypass"
```