2015-11-08 97 views
1

我是新的Codenvy所以我的問題是非常愚蠢的,順便說一句,這是我的問題:Codenvy添加的PostgreSQL到項目錯誤

我建立了我的項目,然後添加DB(PostgreSQL的),我創建了一個我在它粘貼代碼在這個文件中的新泊塢窗文件:https://github.com/codenvy/dockerfiles/blob/master/base/jdk7_postgresql/Dockerfile

我救了它,然後我跑了剛剛創建的亞軍的項目,但我有此錯誤:

[DOCKER] Setting up dh-python (1.20141111-2) ... 
[DOCKER] Processing triggers for systemd (215-17+deb8u2) ... 
[DOCKER] Processing triggers for libc-bin (2.19-18+deb8u1) ... 
[DOCKER] Processing triggers for dbus (1.8.20-0+deb8u1) ... 
[DOCKER] Starting PostgreSQL 9.3 database server: 
[DOCKER] main 
[DOCKER] . 
[DOCKER] CREATE ROLE 
[DOCKER] ---> 77b708d3360b 
[DOCKER] Removing intermediate container cdd908fb498e 
[DOCKER] Step 4 : ADD startup.sh /home/user/startup.sh 
[DOCKER][ERROR] startup.sh: no such file or directory 
[ERROR] We are having trouble starting the runner and deploying application. Either necessary files are missing or a fundamental configuration has changed. 
Docker image build failed 

任何想法如何我能解決問題嗎? 在此先感謝!

回答

2

此PostgresSQL圖像使用startup.sh腳本啓動postgresql服務。你可以在https://github.com/codenvy/dockerfiles/blob/master/base/jdk7_postgresql/startup.sh

要解決這個問題,你可以創建一個新的文件startup.sh,在你的項目的根目錄中有相同的內容,將它添加爲源文件(例如ADD $ src $/startup.sh /home/user/startup.sh)。您還需要注入項目源,使其工作如預期,從而導致你的Dockerfile可能看起來像這樣:

FROM codenvy/jdk7 

ENV DEBIAN_FRONTEND noninteractive 

RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 && \ 
    echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list && \ 
    sudo apt-get update && \ 
    sudo -E bash -c "apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 pwgen" && \ 
    sudo service postgresql start && \ 
    CODENVY_POSTGRESQL_PASSWORD=$(pwgen -N 1) && echo "export CODENVY_POSTGRESQL_PASSWORD=$CODENVY_POSTGRESQL_PASSWORD" >> /home/user/.postgresrc && \ 
    CODENVY_POSTGRESQL_DB=testdb_$(pwgen -N 1) && echo "export CODENVY_POSTGRESQL_DB=$CODENVY_POSTGRESQL_DB" >> /home/user/.postgresrc && \ 
    CODENVY_POSTGRESQL_USER=codenvy && echo "export CODENVY_POSTGRESQL_USER=$CODENVY_POSTGRESQL_USER" >> /home/user/.postgresrc && \ 
    sudo -u postgres psql --command "CREATE USER $CODENVY_POSTGRESQL_USER WITH SUPERUSER PASSWORD '$CODENVY_POSTGRESQL_PASSWORD';" && \ 
    sudo -u postgres createdb -O $CODENVY_POSTGRESQL_USER $CODENVY_POSTGRESQL_DB 

#Inject project sources 
ADD $app$ /home/user/$app$ 
RUN unzip -q /home/user/$app$ -d /home/user 
ENV ARGUMENTS $args$ 

#Add file to the container 
ADD $src$/startup.sh /home/user/startup.sh 

RUN sudo chmod +x /home/user/startup.sh 

#EXPOSE 5432 

CMD sudo /home/user/startup.sh 

或者你可以簡單地使用Codenvy默認的PostgreSQL 9.3 + Java 7的亞軍,這你會在Runners面板> Configs選項卡中找到。

相關問題