/var/www/html/mydrupaldocker
.env
and docker-compose.yml
files and running the containers with the command:docker-compose up -d
And I have questions on two possible situations:
Situation №1:
I made mistakes in the file docker-compose.yml
I have the commented code which is responsible for the few images. Accordingly, the containers were not started. And I want to place the project in another place of the computer (not critical, but it is desirable)
I can do:
docker-compose stop
docker-compose rm
Fix everything that I need. And run again:
docker-compose up -d
Is it right to do so? Or do I need something otherwise?
Situation №2:
Everything is set up well, running all the necessary containers, installed the Drupal 9 site in the container. And then I created a sub theme, added content, wrote code in php, js, css files, etc.
How do I commit the changes now? What commands do you need to write in the terminal? For example, in technology such as git, this is done with the commands:
git add.
git commit -m "first"
How is it done in Docker? Perhaps there will be a situation when I need to roll back the container to the version below.
Okay, let's go by each case.
Whenever you make changes to docker-compose.yml
, it's fine to restart the service/images so they reflect the new changes. It could be as minor as a simple port switch from 80
to 8080
. Hence, you could just do docker-compose stop && docker-compose up -d
and docker-cli
will restart the containers with the new changes.
You don't really need to remove the containers/services unless you have used custom Dockerfile
and have made changes to it. Although, your below assumption would still give the same result, it's just has an extra step of removing the containers without any changes being done to the actual docker images.
I can do:
docker-compose stop
docker-compose rm
Fix everything that I need. And run again:
docker-compose up -d
In this you would be committing your entire project to git
along with your Dockerfile
and docker-compose.yml
file from your host machine and not the container. There's no rocket science here.
You won't be committing your code to git via the containers. The containers are only for deploying and testing your code. You would be committing just the configuration files i.e Dockerfile
(if custom is used offcourse) and docker-compose.yml
file along with your source code to git. The result would be that, any developer who is collaborating with you in a team, can just take a pull of the project and run docker-compose up -d
and the same containers/services running on your machine will be up and running on the host machine of the other dev.
Regarding how to roll back to old version of docker
services, you can just rollback to a previous commit and the docker-compose.yml
will be reverted. Then you can just do:
docker-compose down && docker-compose up -d