Build Docker Image
Front-End App
cd $HOME/gowebapp/gowebapp
There should be a Dockerfile. Something like ...
FROM ubuntu
COPY ./code /opt/gowebapp
COPY ./config /opt/gowebapp/config
EXPOSE 8080
USER 1000
WORKDIR /opt/gowebapp/
ENTRYPOINT ["/opt/gowebapp/gowebapp"]
The command to build the docker image
docker build -t gowebapp:v1 .
Back-end App
cd $HOME/gowebapp/gowebapp-mysql
Dockerfile ...
FROM mysql:5.6
USER 1000
COPY gowebapp.sql /docker-entrypoint-initdb.d/
The command to build the docker image
docker build -t gowebapp-mysql:v1 .
Run and test Docker images locally
Create Docker user-defined network
docker network create gowebapp
Launch frontend and backend containers
docker run --net gowebapp --name gowebapp-mysql --hostname gowebapp-mysql -d -e MYSQL_ROOT_PASSWORD=mypassword gowebapp-mysql:v1
sleep 20
docker run -p 8080:8080 --net gowebapp -d --name gowebapp --hostname gowebapp gowebapp:v1
Inspect the MySQL database
Connect to containerized MySQL
docker exec -it gowebapp-mysql mysql -u root -pmypassword gowebapp
Run some simple SQL commands
#Simple SQL to navigate
SHOW DATABASES;
USE gowebapp;
SHOW TABLES;
SELECT * FROM <table_name>;
exit;
Cleanup application containers
docker rm -f gowebapp gowebapp-mysql
Create and push Docker images to Docker registry
Tag images to target another registry
docker tag gowebapp:v1 $REGISTRY_HOST/gowebapp:v1
docker tag gowebapp-mysql:v1 $REGISTRY_HOST/gowebapp-mysql:v1
Publish images to the registry
docker push $REGISTRY_HOST/gowebapp:v1
docker push $REGISTRY_HOST/gowebapp-mysql:v1
No comments:
Post a Comment