kaliop / ezdocker-stack Goto Github PK
View Code? Open in Web Editor NEWA complete Docker stack to run eZPublish 5+
License: GNU General Public License v2.0
A complete Docker stack to run eZPublish 5+
License: GNU General Public License v2.0
Hi,
When mounting /mnt/ containing whole workspace and potential internal symbolic links, there is an issue acceding to /mnt//workspace from inside the docker. The error is the following one :
bash: cd: /mnt//workspace/: Trop de niveaux de liens
Hi there. I've just done a new clone and build. Everything ok. Problem is starting. looks apache of web container is not starting. entering the container and trying to manually start it i get this error
docker exec -ti web su site
root@crevillo_web:/var/www# /etc/init.d/apache2 start
Starting web server: apache2 failed!
The apache2 configtest failed. ... (warning).
Output of config test was:
AH00526: Syntax error on line 109 of /etc/apache2/apache2.conf:
Error:\tApache has not been designed to serve pages while\n\trunning as root. There are known race conditions that\n\twill allow any local user to read any file on the system.\n\tIf you still desire to serve pages as root then\n\tadd -DBIG_SECURITY_HOLE to the CFLAGS env variable\n\tand then rebuild the server.\n\tIt is strongly suggested that you instead modify the User\n\tdirective in your httpd.conf file to list a non-root\n\tuser.\n
Action 'configtest' failed.
The Apache error log may have more information.
A question about... it's normal that when diong this looks i'm logged as root instead of site?
Further more, if i do a id site
in the container i'm getting
root@crevillo_web:/var/www# id site
uid=0(root) gid=0(root) grupos=0(root)
one thing to know if it helps... i did the build with root user... don't know if this is a problem...
Running a ssh-agent inside Git Bash on Windows seems to work alright. I'm using this script to make sure I have a ssh-gent inside each Bash session, and to reuse the same agent if it's already running:
https://help.github.com/articles/working-with-ssh-key-passphrases/#auto-launching-ssh-agent-on-msysgit
I also enabled SSH agent forwarding, and verified on an unrelated SSH server that it does work.
But after (re)starting the stack and logging into the cli
container, the agent forwarding is not working:
site@project_cli:~$ echo $SSH_AUTH_SOCK
/ssh-agent
site@project_cli:~$ cat /ssh-agent
!<socket >50523 s D26E7C74-CE61963F-EB71618D-8A8D3C12
site@project_cli:~$ ssh-add -L
Could not open a connection to your authentication agent.
site@project_cli:~$ echo $SSH_AUTH_PID
site@project_cli:~$ ssh-agent -a /ssh-agent
bind: Address already in use
unix_listener: cannot bind to path: /ssh-agent
It seems that there is no running ssh-agent. And running ssh-agent -a /ssh-agent
doesn't seem to work either. So far, no luck.
For the record, my current hackish solution is to mount ~/.ssh
in read-only mode:
cli:
volumes:
- ~/.ssh:/home/site/ssh:ro
Not pretty, but it works.
Running stack.sh
in Bash on Windows (living on the edge):
./stack.sh: line 138: config/web/php5/timezone.ini: No such file or directory
Indeed that file doesn't exist. There is a config/cli/php5/timezone.ini
, and no timezone.ini
in config/apache/php5
.
Seen on latest master (826659d).
If the setup aborts after buildDockerComposeConfigFileIfNeeded
(e.g. in configurePhpVersion
or configureWebServer
), then there will be a docker-compose.config.sh
in the folder and users can get stuck when trying to restart the setup:
$ ./stack.sh start
No DOCKER_WEB_SERVER defined! Please run script with option web_server_switch
After setup with the nginx option, the logs/nginx
directory is created, but it's not included in .gitignore
so its contents show up on git status
.
I tried editing .gitignore
and creating logs/nginx/.gitkeep
for a PR, but it looks like Docker took over the permissions on this directory so I can't touch it.
hi again. i have almost everything running it seems. great work, btw :).
The only thing i still don't have is phpmemadmin.
I go to http://localhost:88 and see all those links. All of them work except the phpmemadmin. Clicking on it i get a error 500 saying
PHP Fatal error: require_once(): Failed opening required 'Clickalicious/PhpMemAdmin/Bootstrap.php' (include_path='.:/usr/share/php:/usr/share/pear:/home/site/controlpanel/phpmemadmin/') in /home/site/controlpanel/phpmemadmin/web/index.php on line 73, referer: http://localhost:88/
May it be that there's the need to execute a composer install inside that folder to get these dependencies?
Cheers.
hi. i have a problem with the stack.sh. it doesn't reach the part where it should clone the url you enter.
i think this is a bug in the script... shouldn't these conditions be &&
instead of ||
? https://github.com/kaliop/ezdocker-stack/blob/master/stack.sh#L108
Thank you.
I’m thinking about the volumes pointing to local user config, e.g.
volumes:
- ~/.gitconfig:/home/site/.gitconfig
- ~/.ssh/config:/home/site/.ssh/config
is there a need for those to be writeable? or should they be marked as read-only?
volumes:
- ~/.gitconfig:/home/site/.gitconfig:ro
- ~/.ssh/config:/home/site/.ssh/config:ro
Installer jpegoptim sur le container CLI et Web.
To follow up on issues we've discussed with @supasteev0, about user-configurable paths on Windows, we're using:
When trying to define Windows paths for volumes in docker-compose.config.sh
and use them dynamically in docker-compose.yml
, with this syntax:
volumes:
- "$DOCKER_WWW_ROOT:/var/www"
We're getting this error:
ERROR: for cli Cannot create container for service cli: Invalid volume spec "C": Invalid volume destination path: 'C' mount path must be absolute.
I set out to find how docker-compose resolves the config. In start.sh
, I'm adding a "showconf" command:
showconf)
$DOCKER_COMPOSE --verbose config
;;
For this config:
volumes:
- 'd:/Dev/www:/var/www'
# Both variables set to the values show above
- "$DOCKER_WWW_ROOT:$DOCKER_WWW_DEST"
# In Git Bash, that variable is, e.g.: /tmp/ssh-cJ59v8lPx0K4/agent.4640
# (Knowing that Windows doesn't have a "/tmp" path, that's a virtual path of sorts.)
- "$SSH_AUTH_SOCK:/ssh-agent"
Once resolved, the config is:
volumes:
- /d/Dev/www:/var/www:rw
- /d/Dev/www:C:/Program Files/Git/var/www/
- /c/Users/USERNA~1/AppData/Local/Temp/ssh-cJ59v8lPx0K4/agent.4640:/ssh-agent:rw
Lessons:
'd:/Dev/www'
gets resolved to /d/Dev/www
. Alright./tmp
directory is an alias for ~/AppData/Local/Temp
$DOCKER_WWW_DEST
var as C:/Program Files/Git/var/www/
, which is a compatibility feature it has for other reasons. And that's the part that was breaking our config!So if I change our config to:
volumes:
- "$DOCKER_WWW_ROOT:/var/www"
Everything works fine.
Maybe changing the frontend template to hardcode container-side paths would be enough to fix this?
The following instruction isn't valid :
git clone ssh://[email protected]:kaliop/ezdocker-stack.git
We have to use that :
git clone https://github.com/kaliop/ezdocker-stack.git
Using Apache + PHP7.0, I’m getting this error with Parsedown:
Call to undefined function mb_convert_encoding()
A phpinfo()
shows no mention of the mbstring extension.
It works alright when switching back to PHP 5.6.
Add the possibility to choose the php version to use in the URL, like *.php55.dock
It possible, with PHP FPM, to have one docker by php vesion and configure in apache vhost the docker to use.
Créer un 2ème core avec le schema de base ezplatform.
En prévision d'une future utilisation de cette stack pour ezplatform
Hi,
when I login to docker exec -ti cli su site the language is french. How can I change that? I think it should be english by default.
greetz
Apparently the syntax used for sed
commands is specific to the GNU sed
and fails for macOS’s built-in sed
:
$ ./stack.sh php_switch
[?] Which PHP version do you want to use? 5.4, [5.6], 7 or 7.1:
sed: 1: "docker-compose.config.sh": extra characters at the end of d command
sed: 1: "docker-compose.config.sh": extra characters at the end of d command
Selected php56 as PHP version
(Despite the message, the docker-compose.config.sh is not updated.)
I was able to work around this issue by installing gnu-sed
with Homebrew:
$ brew install gnu-sed --with-default-names
Use case: we have configuration files and scripts for Node.js tools committed in projects and used by front-end developers to compile CSS, SVG sprites, and more. Currently these tools are only used by front-end developers. We would like to enable other developers to use them reliably, especially (but not only) for devs from our Maintenance/Support team.
Could we maybe install Node.js in the CLI container?
Something like:
# Node.js - https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
RUN apt-get install -y nodejs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.