ここに私のコンファイルです:ドッカー構成するには、(おそらくフラスコ関連?)すべてのコンテナを起動していない
FROM node:8.9.3
WORKDIR /app
COPY ./package.json /app
COPY ./server /app/server
COPY ./client /app/client
EXPOSE 3000
ENV PORT 3000
RUN ["npm", "install"]
ENTRYPOINT ["npm", "start"]
そしてapi
プロジェクトのために:ここで
version: '2'
services:
web:
build: ./web
ports:
- "3000:3000"
links:
- api
api:
build: ./api
links:
- db
db:
image: postgres
はweb
サービスのための私のDockerfileです。
FROM python:3.6
WORKDIR /api
COPY ./requirements.txt /api/requirements.txt
COPY ./src /api/src
EXPOSE 80
ENV PORT 80
RUN ["pip", "install", "-r", "requirements.txt"]
RUN ["python", "src/main.py"]
docker-compose up
を実行すると、api
サービスが開始されます。しかし、api
サービスをすべてコメントアウトしてdocker-compose up
を再度実行すると、web
とdb
の両方のサービスが開始されます。 api
プロジェクトの設定方法に問題がありますか?私は間違って何をしていますか?
ただ、完全を期すために、ここでweb
プロジェクト(Expressを使用しています)
http.createServer(app).listen(app.get("port"), function() {
console.log("Express server listening on port " + app.get("port"));
});
とapi
PROJ(フラスコを使用しています)の開始ファイルです:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)
UPDATE
は、私は私のフラスコサーバーのメインラインをコメントアウトし、3つのサービスすべてを開始することができます。欠点は...今私はAPIサーバーを持っていない。他のサービスを使用できなくするFlaskについてはどうですか?
UPDATE 2
いくつかは、ログを参照するように要求しています。フラスコを構築してもいけない他のコンテナに含まれているか
Building api
Step 1/8 : FROM python:3.6
---> c1e459c00dc3
Step 2/8 : WORKDIR /api
---> Using cache
---> 8c9da963377c
Step 3/8 : COPY ./requirements.txt /api/requirements.txt
---> Using cache
---> 654c815801f6
Step 4/8 : COPY ./src /api/src
---> 5627279f7323
Removing intermediate container 453bf031c2f7
Step 5/8 : EXPOSE 80
---> Running in efb18f950f7d
---> 1389c63a0bcb
Removing intermediate container efb18f950f7d
Step 6/8 : ENV PORT 80
---> Running in 2ad88bed6343
---> fa85201cc165
Removing intermediate container 2ad88bed6343
Step 7/8 : RUN pip install -r requirements.txt
---> Running in e19107f5a449
Collecting flask==0.12.2 (from -r requirements.txt (line 1))
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
Collecting itsdangerous>=0.21 (from flask==0.12.2->-r requirements.txt (line 1))
Downloading itsdangerous-0.24.tar.gz (46kB)
Collecting Werkzeug>=0.7 (from flask==0.12.2->-r requirements.txt (line 1))
Downloading Werkzeug-0.13-py2.py3-none-any.whl (311kB)
Collecting click>=2.0 (from flask==0.12.2->-r requirements.txt (line 1))
Downloading click-6.7-py2.py3-none-any.whl (71kB)
Collecting Jinja2>=2.4 (from flask==0.12.2->-r requirements.txt (line 1))
Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB)
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask==0.12.2->-r requirements.txt (line 1))
Downloading MarkupSafe-1.0.tar.gz
Building wheels for collected packages: itsdangerous, MarkupSafe
Running setup.py bdist_wheel for itsdangerous: started
Running setup.py bdist_wheel for itsdangerous: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/fc/a8/66/24d655233c757e178d45dea2de22a04c6d92766abfb741129a
Running setup.py bdist_wheel for MarkupSafe: started
Running setup.py bdist_wheel for MarkupSafe: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
Successfully built itsdangerous MarkupSafe
Installing collected packages: itsdangerous, Werkzeug, click, MarkupSafe, Jinja2, flask
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.13 click-6.7 flask-0.12.2 itsdangerous-0.24
---> a7be838d3a6e
Removing intermediate container e19107f5a449
Step 8/8 : RUN python src/main.py
---> Running in e86c8adf46f0
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
お知らせ:
Building web
Step 1/10 : FROM node:8.9.3
---> 2eeae8debf3d
Step 2/10 : WORKDIR /app
---> Using cache
---> 02199a27dafb
Step 3/10 : COPY ./package.json /app
---> Using cache
---> fafac64ad492
Step 4/10 : COPY ./app.js /app
---> Using cache
---> 0b1e3067451b
Step 5/10 : COPY ./controllers /app/server
---> Using cache
---> ff00fa864078
Step 6/10 : COPY ./client /app/client
---> Using cache
---> 587214c84267
Step 7/10 : EXPOSE 3000
---> Using cache
---> ddd5b795fcf5
Step 8/10 : ENV PORT 3000
---> Using cache
---> ca4c37f63468
Step 9/10 : RUN npm install
---> Using cache
---> 74b289885447
Step 10/10 : ENTRYPOINT npm start
---> Using cache
---> 9c5ec6770c47
Successfully built 9c5ec6770c47
Successfully tagged testcomposemachine_web:latest
Recreating testcomposemachine_web_1
Starting testcomposemachine_db_1
Attaching to testcomposemachine_db_1, testcomposemachine_web_1
db_1 | 2017-12-28 23:11:55.861 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2017-12-28 23:11:55.861 UTC [1] LOG: listening on IPv6 address "::", port 5432
db_1 | 2017-12-28 23:11:55.874 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2017-12-28 23:11:55.907 UTC [24] LOG: database system was shut down at 2017-12-28 22:59:27 UTC
db_1 | 2017-12-28 23:11:55.919 UTC [1] LOG: database system is ready to accept connections
web_1 |
web_1 | > [email protected] start /app
web_1 | > node app.js
web_1 |
web_1 | Express Web server listening on port 3000
を私はフラスコが含まれている場合、ログはここにある:私はフラスコせずに起動する場合
ここでログはありますか?
コードを読んだことがありますか?最小限の完全な例です。 – dopatraman
私は、これをローカルで実行しようとすると、私が遭遇する最初の問題はpackage.jsonが見つからないことです。私自身の環境であなたの問題を再現するために必要なものはすべてここには存在しません。そうすれば、かなり大きな質問が作成されるため、問題の原因を特定する必要はありません。 – BMitch
各プロジェクトは独立してファイルを開始します。これは、各プロジェクトが単独で実行可能であることを意味します。 ivは可能な限り最小限に抑え、問題のあるプロジェクトの部分を示しました。もっと何ができるのか分かりません。 – dopatraman