Comments (6)
Thanks for the info @pirate. That makes sense. As for the SQLite error, that's something we're aware of and have a fix for on the way, but even with that working, the filesystem will still be ephemeral and so you wouldn't be able to run ArchiveBox properly. Also, cool project :)
from sample-dockerfile.
Hi @pirate,
This is very helpful feedback, thank you. I've shared this with the team and we'll update the docs to be clearer about these points. Meanwhile, I'll try to briefly answer them for you. Let me know if you have any additional questions.
- how do you attach volumes?
Volumes are not supported at this time. You can use Spaces for storage but your app will need to know how to use an object store for files as it cannot be mounted as a filesystem directory.
- how do you specify the source dir the docker build should take place in?
We're working on adding this option to the UI, but you can do that in the app spec. In the Settings tab, you can download your app spec, edit it, and upload the new version. Alternatively, you can use doctl to retrieve the spec (doctl apps list
and doctl apps spec get <app-id>
) and upload the new version (doctl apps update --spec spec.yaml <app id>
).
name: app
services:
- name: example
dockerfile_path: Dockerfile
source_dir: api
Both dockerfile_path
and source_dir
are relative to the repository root.
See Reference for App Specification for more info.
- how do you specify a remote image on docker hub instead of building it from scratch on every deploy?
You can select a DockerHub image via the UI—see Deploy Images from Docker Hub to App Platform. In the spec, it will look like so:
name: app
services:
- name: example
image:
registry: library
registry_type: DOCKER_HUB
repository: memcached
tag: latest
If you're building your own image, make sure to use unique tags so that old images are not cached for longer than needed.
- how do you specify the entrypoint and command?
If you have an entrypoint/command in your Dockerfile, you can leave the Run Command empty and they will be used. If you set a Run Command, it will override both.
- how do you specify the ports to expose to the outside world? (especially if there are multiple ports)
Currently service component can publish one only port. Could you tell me more about your use case?
from sample-dockerfile.
Thanks for the info.
Volumes are not supported at this time
Ah thats unfortunate, that rules out my use case (and I'd guess the majority of off-the-shelf docker containers). I'll give it another try when Volumes are supported.
from sample-dockerfile.
@pirate Sorry, I hit enter too soon. Volumes are definitely on the roadmap but I don't have an ETA that I can share. Would you mind expanding more on your usecase? That would help us prioritize this feature.
from sample-dockerfile.
I'm trying to offer a 1-click deploy to ArchiveBox users: https://github.com/ArchiveBox/ArchiveBox
Here are my attempts at getting it working so far:
- ArchiveBox/ArchiveBox@f473114
- ArchiveBox/ArchiveBox@9999721
- ArchiveBox/ArchiveBox@985740b
- ArchiveBox/ArchiveBox@145dda3
All I want is this image: archivebox/archivebox:latest
deployed to a DO droplet, with /data
mounted as a volume, and port 8000
exposed to the internet. Ideally something like this:
spec:
services:
- name: archivebox
image: archivebox/archivebox:latest
volumes:
- data:/data
ports:
- 8000
It's a fairly standard linuxserver.io-style Docker image, it uses SQLite and the filesystem heavily for state though, so needs a writable filesystem, which doesn't seem to be supported even without a volume:
from sample-dockerfile.
I could live with ephemeral, it's not ideal but I'd just rsync it to s3/spaces or something every few seconds. I don't think spaces-backed volumes are necessarily ideal either due to the high latency, what I really want is a local SSD-backed volume / writable FS that's backed up to spaces periodically.
from sample-dockerfile.
Related Issues (8)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sample-dockerfile.