2017-09-27 107 views
-1

你好傢伙即時嘗試設置Dockerfile與Ubuntu的PHP7和Apache與工作區/應用程序/網絡。 phpmyadmin和mysql已經運行,但我沒有得到它如何設置Dockerfile的Ubuntu和PHP7的任何建議?是的,我知道docker hub和git上有很多完成的解決方案,但我優先創建我自己的,以瞭解它是如何工作的。泊塢窗Ubuntu與PHP和工作區

version: '2' 
 
services: 
 
    ####################################### 
 
    # PHP application Docker container 
 
    ####################################### 
 
    app: 
 
    build: 
 
     context: . 
 
     dockerfile: Dockerfile 
 
    links: 
 
     - mysql 
 
    ports: 
 
     - "8000:80" 
 
    volumes: 
 
     #- ./app/:/app/ 
 
     - ./:/docker/ 
 
    volumes_from: 
 
     - storage 
 
    networks: 
 
     - php-network 
 

 
####################################### 
 
# MySQL server 
 
####################################### 
 
    mysql: 
 
    build: 
 
     context: docker/mysql/ 
 
     dockerfile: MySQL-5.7.Dockerfile 
 
    restart: always 
 
    volumes_from: 
 
     - storage 
 
    env_file: 
 
     - etc/environment.yml 
 
    networks: 
 
    - php-network 
 
####################################### 
 
# PHP MY ADMIN 
 
####################################### 
 
    myphpadmin: 
 
    build: 
 
     context: docker/myphpadmin 
 
     dockerfile: Dockerfile 
 
    restart: always 
 
    links: 
 
    - mysql 
 
    ports: 
 
    - 8080:80 
 
    environment: 
 
    - PMA_HOST=mysql 
 
    - VIRTUAL_PORT=80 
 
    networks: 
 
    - php-network 
 

 
    storage: 
 
    build: 
 
     context: docker/storage/ 
 
    volumes: 
 
     - /storage 
 

 
networks: 
 
    php-network: 
 
     driver: bridge

Dockerfile

FROM ubuntu:latest 
 

 
# Install apache, PHP, and supplimentary programs. openssh-server, curl, and lynx-cur are for debugging the container. 
 
RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \ 
 
apache2 php7.0 php7.0-mysql libapache2-mod-php7.0 curl lynx-cur 
 

 
# Enable apache mods. 
 
RUN a2enmod php7.0 
 
RUN a2enmod rewrite 
 

 
# Update the PHP.ini file, enable <? ?> tags and quieten logging. 
 
RUN sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.0/apache2/php.ini 
 
RUN sed -i "s/error_reporting = .*$/error_reporting = E_ERROR | E_WARNING | E_PARSE/" /etc/php/7.0/apache2/php.ini 
 

 
# Manually set up the apache environment variables 
 
ENV APACHE_RUN_USER www-data 
 
ENV APACHE_RUN_GROUP www-data 
 
ENV APACHE_LOG_DIR /var/log/apache2 
 
ENV APACHE_LOCK_DIR /var/lock/apache2 
 
ENV APACHE_PID_FILE /var/run/apache2.pid 
 

 
# Expose apache. 
 
EXPOSE 80 
 

 
# Copy this repo into place. 
 
ADD www /var/www/site 
 

 
# Update the default apache site with the config we created. 
 
ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf 
 

 
# By default start up apache in the foreground, override with /bin/bash for interative. 
 
CMD /usr/sbin/apache2ctl -D FOREGROUND

+0

究竟是你AR問題呃碰上?什麼不起作用? –

+0

srcipt正在運行槽,但我不能訪問機器,我還想添加一個apache和php,我可以在/ app/web/ – mY777

+1

上訪問到目前爲止,您在Docker容器中安裝Apache有什麼?另外,「我無法訪問機器」是什麼意思?你無法打開一個shell會話嗎? –

回答