Best practice Magento dev environment, how do teams develop Magento?
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
3
down vote
favorite
I'm trying to set up a dev environment
for my team to work together on 1 Magento project. But I don't know if I should use a shared server
with a Magento installation or if we should all install Magento locally
and share a database/git repo ?
magento2 best-practice
add a comment |Â
up vote
3
down vote
favorite
I'm trying to set up a dev environment
for my team to work together on 1 Magento project. But I don't know if I should use a shared server
with a Magento installation or if we should all install Magento locally
and share a database/git repo ?
magento2 best-practice
add a comment |Â
up vote
3
down vote
favorite
up vote
3
down vote
favorite
I'm trying to set up a dev environment
for my team to work together on 1 Magento project. But I don't know if I should use a shared server
with a Magento installation or if we should all install Magento locally
and share a database/git repo ?
magento2 best-practice
I'm trying to set up a dev environment
for my team to work together on 1 Magento project. But I don't know if I should use a shared server
with a Magento installation or if we should all install Magento locally
and share a database/git repo ?
magento2 best-practice
magento2 best-practice
edited Sep 7 at 8:50
Prince
6,4862934
6,4862934
asked Sep 7 at 8:03
jonasG
486
486
add a comment |Â
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
5
down vote
I don't think there is a silver bullet solution on this.
All I can say is how we do it.
We've setup a docker environment using the suite created by Fabrizio Balliano.
We made some additional changes to it.
- we added a sample data sql with some products that gets installed when the db container is created (using the
/docker-entrypoint-initdb.d/
feature). - we created a
make
file that contains some wrappers for the docker commands because they are hard to remember. Examplemake ssh
is an alias for@docker exec -it --user www-data magento.container.name.here bash
in order to get cli access to the container.make uninstall
will destroy the containers and cleanup after them.make install
will create all containers and so on.
This way, everyone has the same environment and the same settings (that can be matched to the live server).
We needed at one point to add elasticsearch to the project. We just pulled up a docker image for elasticsearch and that's it. It got versioned and everyone had it at the next git pull
.
When a new person comes in the project they just git clone
the repo, run make install
and everything is set up.
Draw backs:
- it only works perfectly on linux. It can be made to work on mac (and maybe windows) but we did not bother.
- it introduces dev dependencies like docker
and gnu makefile
.
add a comment |Â
up vote
1
down vote
We personally have installed Magento locally through Bitnami VM and we share a git repository. When we have to get the project into a production server we just clone the repo and the database.
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
down vote
I don't think there is a silver bullet solution on this.
All I can say is how we do it.
We've setup a docker environment using the suite created by Fabrizio Balliano.
We made some additional changes to it.
- we added a sample data sql with some products that gets installed when the db container is created (using the
/docker-entrypoint-initdb.d/
feature). - we created a
make
file that contains some wrappers for the docker commands because they are hard to remember. Examplemake ssh
is an alias for@docker exec -it --user www-data magento.container.name.here bash
in order to get cli access to the container.make uninstall
will destroy the containers and cleanup after them.make install
will create all containers and so on.
This way, everyone has the same environment and the same settings (that can be matched to the live server).
We needed at one point to add elasticsearch to the project. We just pulled up a docker image for elasticsearch and that's it. It got versioned and everyone had it at the next git pull
.
When a new person comes in the project they just git clone
the repo, run make install
and everything is set up.
Draw backs:
- it only works perfectly on linux. It can be made to work on mac (and maybe windows) but we did not bother.
- it introduces dev dependencies like docker
and gnu makefile
.
add a comment |Â
up vote
5
down vote
I don't think there is a silver bullet solution on this.
All I can say is how we do it.
We've setup a docker environment using the suite created by Fabrizio Balliano.
We made some additional changes to it.
- we added a sample data sql with some products that gets installed when the db container is created (using the
/docker-entrypoint-initdb.d/
feature). - we created a
make
file that contains some wrappers for the docker commands because they are hard to remember. Examplemake ssh
is an alias for@docker exec -it --user www-data magento.container.name.here bash
in order to get cli access to the container.make uninstall
will destroy the containers and cleanup after them.make install
will create all containers and so on.
This way, everyone has the same environment and the same settings (that can be matched to the live server).
We needed at one point to add elasticsearch to the project. We just pulled up a docker image for elasticsearch and that's it. It got versioned and everyone had it at the next git pull
.
When a new person comes in the project they just git clone
the repo, run make install
and everything is set up.
Draw backs:
- it only works perfectly on linux. It can be made to work on mac (and maybe windows) but we did not bother.
- it introduces dev dependencies like docker
and gnu makefile
.
add a comment |Â
up vote
5
down vote
up vote
5
down vote
I don't think there is a silver bullet solution on this.
All I can say is how we do it.
We've setup a docker environment using the suite created by Fabrizio Balliano.
We made some additional changes to it.
- we added a sample data sql with some products that gets installed when the db container is created (using the
/docker-entrypoint-initdb.d/
feature). - we created a
make
file that contains some wrappers for the docker commands because they are hard to remember. Examplemake ssh
is an alias for@docker exec -it --user www-data magento.container.name.here bash
in order to get cli access to the container.make uninstall
will destroy the containers and cleanup after them.make install
will create all containers and so on.
This way, everyone has the same environment and the same settings (that can be matched to the live server).
We needed at one point to add elasticsearch to the project. We just pulled up a docker image for elasticsearch and that's it. It got versioned and everyone had it at the next git pull
.
When a new person comes in the project they just git clone
the repo, run make install
and everything is set up.
Draw backs:
- it only works perfectly on linux. It can be made to work on mac (and maybe windows) but we did not bother.
- it introduces dev dependencies like docker
and gnu makefile
.
I don't think there is a silver bullet solution on this.
All I can say is how we do it.
We've setup a docker environment using the suite created by Fabrizio Balliano.
We made some additional changes to it.
- we added a sample data sql with some products that gets installed when the db container is created (using the
/docker-entrypoint-initdb.d/
feature). - we created a
make
file that contains some wrappers for the docker commands because they are hard to remember. Examplemake ssh
is an alias for@docker exec -it --user www-data magento.container.name.here bash
in order to get cli access to the container.make uninstall
will destroy the containers and cleanup after them.make install
will create all containers and so on.
This way, everyone has the same environment and the same settings (that can be matched to the live server).
We needed at one point to add elasticsearch to the project. We just pulled up a docker image for elasticsearch and that's it. It got versioned and everyone had it at the next git pull
.
When a new person comes in the project they just git clone
the repo, run make install
and everything is set up.
Draw backs:
- it only works perfectly on linux. It can be made to work on mac (and maybe windows) but we did not bother.
- it introduces dev dependencies like docker
and gnu makefile
.
edited Sep 7 at 9:33
answered Sep 7 at 8:42
Mariusâ¦
159k26296633
159k26296633
add a comment |Â
add a comment |Â
up vote
1
down vote
We personally have installed Magento locally through Bitnami VM and we share a git repository. When we have to get the project into a production server we just clone the repo and the database.
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
add a comment |Â
up vote
1
down vote
We personally have installed Magento locally through Bitnami VM and we share a git repository. When we have to get the project into a production server we just clone the repo and the database.
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
add a comment |Â
up vote
1
down vote
up vote
1
down vote
We personally have installed Magento locally through Bitnami VM and we share a git repository. When we have to get the project into a production server we just clone the repo and the database.
We personally have installed Magento locally through Bitnami VM and we share a git repository. When we have to get the project into a production server we just clone the repo and the database.
answered Sep 7 at 8:24
Raül
45913
45913
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
add a comment |Â
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
we do like the bitnami VM because it's pretty performant and easy to set up, but won't we have problems with the database if we each made different changes to it? Or can we use version control on it?
â jonasG
Sep 7 at 8:52
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
Yes and no, it depends. Personally, we are 3 in our dev team, so if we need to upgrade the db locally because someone has made a change, he just shares it via Slack or shared folders and we upload it and change the local urls. It doesn't take more than 5 minutes and we don't do it that often. But of course if you have a 10/20 or even more, it might not be the best/suitable option.
â Raül
Sep 7 at 8:59
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f241260%2fbest-practice-magento-dev-environment-how-do-teams-develop-magento%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password