by Devin Yang
(This article was automatically translated.)

Published - 6 years ago ( Updated - 6 years ago )

Chowner about D-Laravel

This article explains the function of chowner in D-Laravel.
If you are a Linux user, you may need to do this.

Why Chowner

Let's understand this first. Although it is a container, the uid used by Docker's container in the Linux system will be the same as the uid used by your host side (share the same Kernel).
When the uid on your host is 500, start the D-Laravel container, and the dlaravel (default 1000) in the fpm Container does not have the right to write files to your directory.
So, Laravel's webpage will spray you with a bunch of errors, because dlaravel in fpm cannot write files to the storage directory.

There are three solutions

1. In the simplest way, we directly create a user whose uid and gid are 1000 in the Linux system on the Host side to execute D-Laravel.
2. Through chowner, we change the userid of the container in D-Laravel's FPM to the uid we use, for example: 500.
3. Rebuild an FPM image by yourself, and set the uid as the user on your own host.

D-Laravel chowner operation process

(OSX users do not need to do this, because OSX uses Hyperkit to run in the virtual environment)
1. ./console up 
start container

2. ./console chowner
Adjust the uid inside the container to be the same as your uid.

3. docker ps|grep deviny/fpm
To find out the fpm used by dlaravel, we need to commit the changed container to a new image.


4. docker commit 04496a60f0e7 myfpm724
The image name above can be taken by yourself, or we can directly overwrite the used image.
docker commit 04496a60f0e7 deviny/fpm:7.2.4
You need to adjust the image name used by the php service in docker-compose.yml, if you have taken a new name yourself.

5. Execute in the directory of D-Laravel, cd etc/php-fpm.d
Enter the fpm configuration file directory.

6. cp www.conf.sample www.conf 
Copy the sample file as www.conf, and modify the uid inside to be the same user as you
user = 500
group = 500
How to know the uid and gid executed by yourself, you can enter id in the terminal to get it.

7. ./console restart
restart container

8. ./console
Enter the fpm container.

9. id
After confirming the restart, in the container, use the new uid we set, not 1000.
 

Tags: dlaravel

Devin Yang

Feel free to ask me, if you don't get it.:)

No Comment

Post your comment

Login is required to leave comments

Similar Stories


dlaravel

D-Laravel test domain name *.dev changed to *.test

Since Google Chrome 63 will forcibly convert the domain name of *.dev to https, the domain name of the new version of D-Laravel will be changed to *.test. This article explains how to update.

dlaravel

Safe Update D-Laravel

How to upgrade the current D-Laravel. If your current use environment is very smooth and you have not encountered any problems, you don't need to update it. If you want to use the latest version, and bug fixes, etc., please read this article carefully, In order to ensure a smooth upgrade, the following is the recommended way to upgrade D-Laravel.

dlaravel

Use docker in docker to build a D-Laravel test environment.

D-Laravel is an extremely easy-to-use and extremely flexible Laravel development environment. As long as you are a Mac user, even if you don’t know Docker, you can use it to create Laravel projects and develop them. Due to the newly added .env function When it comes to functions, those who are in a hurry push, but there is no complete test, and a bunch of new bugs are created. Therefore, this time, a new dlaravel_test, a bash testing tool, is added to run the test through docker in docker. Make sure that every release of D-Laravel can be a stable version.